三、配置文件基本结构

1、配置文件可以看做是nginx的灵魂,nginx服务在启动时会读取配置文件,而后续几乎一切动作行为都是按照配置文件中的指令进行的

#user  nobody;
worker_processes  8;
error_log  logs/error.log;
pid        logs/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;
    #gzip  on;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   /home/yefeng/www;
            index  index.html index.htm;
        }
        #error_page  404              /404.html;
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

以上为一个纯净的nginx的配置文件、nginx的配置文件是以block的形式组织的,一个block通常使用大括号{}表示。block分为几个层级,整个配置文件为main层级,这是最大的层级;在main层级下可以有event、http等层级,而http中又会有server block,server block中可以包含location block.

每个层级可以有自己的指令,例如worker_processes是一个main层级的指令,它指定nginx服务的worker进程数量。有的指令只能在一个层级中配置,如worker_processes只能存在于main中,而有的指令可以存在于多个层级,在这种情况下,子block会继承父block的配置,同事如果子block配置了与父block不同的指令,则会覆盖掉父block的配置。指令的格式是“指令名 参数1 参数2.....参数N;”注意参数间可用任意数量空格分割,最后要加分号。

在开发nginx HTTP拓展模块过程中,需要特别注意的是main、server、location三个层级,因为拓展模块通常允许指定新的配置命令在这三个层级中

一般来说,一个server block表示一个host,而里面的一个location则表示一个路由映射规则,这两个block可以说是http配置的核心。

image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容