nginx.conf 配置文件优化建议

542次阅读
没有评论

1)配置文件位置

nginx 安装目录的 conf 文件夹下,例如:/usr/local/nginx/conf/nginx.conf。

也可以将配置文件放置在任意位置,在启动 Nginx 时指定配置文件的位置,例如:./nginx -c /home/nginx.conf

2)worker_processes

设置 worker 的数量,Nginx 的进程模型采用的是 master、worker 模式,一个 master 负责协调,多个 worker 负责与客户端交互。

此处设置为 auto 即可。

nginx.conf 配置文件优化建议

3)events

设置使用的模型和每个 worker 的连接数。

Linux 操作系统中模型建议使用 epoll。

worker 的连接数通常设置为 10240 即可,当然如果硬件资源非常好,也可以适当加大。

4)include

包含另一个文件的内容,将另一个文件的内容放在标记处。

多个文件可以写多个 include,也可以使用通配符匹配多个文件。

nginx.conf 配置文件优化建议

5)sendfile 和 tcp_nopush

sendfile:设置文件高效传输是否开启,默认开启。

tcp_nopush:必须是 sendfile 值为 on 时才有效,当 tcp_nopush 设置为 on 代表当数据包累计到一定大小时再发送,有助于提升文件传输效率。

建议都设置为 on。

nginx.conf 配置文件优化建议

6)keepalive_timeout

客户端连接服务器的超时时间,在连接断开前,客户端再次与服务器进行交互,可复用此连接,不需要重新建立一个连接,减少了资源的开销。

设置为 0,则表示交互完立即断开连接。此值保持默认即可。

nginx.conf 配置文件优化建议

7)gzip

设置为 on,代表会先将数据压缩再进行传输,这样做会增加传输的效率,节省带宽,但会影响服务器 CPU 的性能。

开启此配置,还需要配置一些额外的属性。

此处可以权衡是节省带宽还是提高 CPU 性能,建议开启,根据实际情况配置。

gzip on;
gzip_min_length 512; # 限制最小压缩,单位字节,小于该值则不会压缩
gzip_comp_level 5; # 压缩的级别,值为 1 到 9,级别越高压缩的比例越大,cpu 消耗越多
gzip_types text/plain application/javascript text/css image/jpeg image/gif image/png application/json; # 需要压缩的文件类型 

8)server

一个 server 块就是一个虚拟的服务。

在 server 块中可以指定虚拟服务的 端口、服务名、路由规则等信息。

server 可以有多个。

一个 server 下,location 也可以有多个。

server {
        listen       90;           # 端口
        server_name  localhost;    # 服务名,可以是 IP 地址或者域名,当端口相同时,会根据服务名选择走哪个路由规则


        location / {               # 根路径路由规则
            root   html;           # 对应 nginx 安装目标下的 html 文件夹,也可以设置为绝对路径,例如:root /home/html;
            index  hello.html;     # 指定默认首页为 hello.html
        }
     location /hello {root /home/hello;        # index 省略,代表没有默认页}      
        error_page   500 502 503 504  /50x.html;  # 指定这些状态码跳转的错误页
        location = /50x.html {root   html;}
    }

9)location 的匹配规则详解

server 块中包含了 location 块,location 块在一个 server 下可以有多个,主要是配置请求的路由规则。

nginx 根据请求的资源路径,与 location 块进行匹配,然后根据 location 的配置对路由进行转发。

location 支撑多种匹配规则,下面就具体说一说。

精确匹配

location / { # 根路径路由规则
            root html; # 对应 nginx 安装目标下的 html 文件夹,也可以设置为绝对路径,例如:root /home/html;
            index hello.html; # 指定默认首页为 hello.html
        }
     location /hello {
      root /home/hello;
      # index 省略,代表没有默认页
    }

正则表达式匹配

location ~* \.(GIF|PNG|jpg|bmp|jpeg) { # * 代表不区分大小写
  root /home/img;
}

匹配以某个路径开头的请求

location ^~ /server/page/ {root /home/page;}

 

微信扫描下方的二维码阅读本文

正文完
 0
柹子丶
版权声明:本站原创文章,由 柹子丶 于2022-11-02发表,共计2036字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码