6.5. nginx基础配置

6.5.1. nginx配置文件结构

nginx主配置文件是: nginx.conf ,也可以类似apache通过不同的子配置文件配置,然后包含到主配置文件中。

nginx主配置文件简单说明:
  • 主配置文件中配置参数的行需要以 ; 结尾。

  • 主配置文件通过关键字和 {} 来分割每个配置区域,即可以理解成字典类型的配置方法。

过滤所有注释后的nginx默认配置内容:

过滤命令:

1egrep -v "#|^$" /usr/local/nginx/conf/nginx.conf

nginx默认配置解释:

 1worker_processes  1;                            worker进程的数量
 2events {                                        Events区块开始
 3    worker_connections  1024;                   每个worker进程支持的最大连接数
 4}                                               Events区块结束
 5http {                                          http区块开始
 6    include       mime.types;                   nginx支持的媒体类型库文件
 7    default_type  application/octet-stream;     默认的媒体类型
 8    sendfile        on;                         开启高效传输模式
 9    keepalive_timeout  65;                      连接超时时间65秒
10    server {                                    第一个server区块,表示一个独立的虚拟主机站点。可以设置多个
11        listen       80;                        监听端口,即为这个站点提供服务的端口
12        server_name  localhost;                 提供服务的域名主机
13        location / {                            第一个location区块开始,可以有多个location
14            root   html;                        站点根目录,相当于nginx的安装目录,html目录需要755权限
15            index  index.html index.htm;        默认首页文件,多个文件时用空格隔开
16        }                                       location区块结束
17        error_page   500 502 503 504  /50x.html;    出现对应http状态码时返回50x.html页面
18        location = /50x.html {                  location区块开始,访问50x.html
19            root   html;                        指定这个节点的目录
20        }                                       location区块结束
21    }                                           server区块结束
22}                                               http区块结束
重点区域说明:
  • worker_processes设置为CPU个数的两倍比较好。

  • worker_connections是每个worker进程最大链接数,实际能打开的最大连接数应该是worker_processes值和worker_connections的值相乘,然后和文件描述符的大小比较,取最小值。( ulimit -n 来查看系统文件描述符大小,默认1024)

  • include是包含其他文件进这个配置。一般可以在同级目录创建一个conf.d目录来存放子配置文件。然后通过 include conf.d/*; 来包含进这个主配置文件。

  • keepalive_timeout,这个超时时间也可以有效节约资源。

  • 可以通过不同的server区域配置不同的虚拟主机。这个虚拟主机区域可以定义站点位置/端口/域名/允许/拒绝的IP或者IP地址段

  • listen,监听的本地端口。默认时80端口,一个server区域只可以设置一个端口。

  • server_name,用来设置域名访问。这个域名需要同时在DNS有对应的A记录。

  • localtion,默认是 / 这就是访问时的浏览器访问除了IP以后输入的内容。可以进行匹配然后从而匹配不同的链接进入不同的location操作匹配。

  • localtion区域的root,定义站点的根目录。如果是编译安装,默认站点是安装目录的html目录。如果rpm/yum安装则默认是/var/www/html目录。如果自定义根目录。需要注意输入绝对路径,并且根目录权限755。

  • localtion区域的index,定义默认的首页文件,即不输入文件名时,访问的目录的主页文件时哪些名称和后缀。

  • error_page,用来做异常处理,定义500、502、503、504这三种错误状态码会返回哪个页面。

  • location = /50x.html,即如果匹配上面的异常则访问/50x.html这个页面。这个页面又是匹配本条location。然后继续进入匹配并操作返回。