Nginx配置文件详解以及优化建议指南


Posted in Servers onSeptember 15, 2021

1、概述

今天来详解一下Nginx的配置文件,以及给出一些配置建议,希望能对大家有所帮助。

2、nginx.conf

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配置文件详解以及优化建议指南

3)events

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

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

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

4)include

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

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

Nginx配置文件详解以及优化建议指南

5)sendfile 和 tcp_nopush

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

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

建议都设置为 on。

Nginx配置文件详解以及优化建议指南

6)keepalive_timeout

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

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

Nginx配置文件详解以及优化建议指南

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;
    }

3、综述

今天对Nginx配置做了详细讲解,一些Nginx的高级应用,会在后面单独介绍。希望大家多多沟通交流,共同成长。

到此这篇关于Nginx配置文件详解以及优化的文章就介绍到这了,更多相关Nginx配置文件优化内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Servers 相关文章推荐
Nginx 过滤静态资源文件的访问日志的实现
Mar 31 Servers
Window server 2012 R2 AD域的组策略相关设置
Apr 28 Servers
docker compose 部署 golang 的 Athens 私有代理问题
Apr 28 Servers
nginx 添加http_stub_status_module模块
May 25 Servers
阿里云服务器部署RabbitMQ集群的详细教程
Jun 01 Servers
openEuler 搭建java开发环境的详细过程
Jun 10 Servers
在windows server 2012 r2中安装mysql的详细步骤
Jul 23 Servers
Tomcat安装使用及部署Web项目的3种方法汇总
Aug 14 Servers
nginx配置指令之server_name的具体使用
Aug 14 Servers
Zabbix6通过ODBC方式监控Oracle 19C的详细过程
Sep 23 Servers
学习nginx基础知识
Nginx location 和 proxy_pass路径配置问题小结
Sep 04 #Servers
Nginx使用Lua模块实现WAF的原理解析
Nginx部署vue项目和配置代理的问题解析
centos8安装nginx1.9.1的详细过程
Aug 02 #Servers
Nginx反向代理至go-fastdfs案例讲解
Aug 02 #Servers
Nginx配置之实现多台服务器负载均衡
Aug 02 #Servers
You might like
实现dedecms全站URL静态化改造的代码
2007/03/29 PHP
PHP JSON 数据解析代码
2010/05/26 PHP
thinkphp文件引用与分支结构用法实例
2014/11/26 PHP
php实现的任意进制互转类分享
2015/07/07 PHP
利用php + Laravel如何实现部署自动化详解
2017/10/11 PHP
JS 退出系统并跳转到登录界面的实现代码
2013/06/29 Javascript
javascript实用小函数使用介绍
2013/11/11 Javascript
JavaScript使用cookie实现记住账号密码功能
2015/04/27 Javascript
原生JavaScript实现滚动条效果
2020/03/24 Javascript
JavaScript基础教程——入门必看篇
2016/05/20 Javascript
深入理解jQuery.data() 的实现方式
2016/11/30 Javascript
jquery图片放大镜效果
2017/06/23 jQuery
js判断传入时间和当前时间大小实例(超简单)
2018/01/11 Javascript
浅析JS中什么是自定义react数据验证组件
2018/10/19 Javascript
详解微信小程序-扫一扫 wx.scanCode() 扫码大变身
2019/04/30 Javascript
解决echarts数据二次渲染不成功的问题
2020/07/20 Javascript
vue 封装面包屑组件教程
2020/11/16 Javascript
微信小程序视频弹幕发送功能的实现
2020/12/28 Javascript
python实现监控某个服务 服务崩溃即发送邮件报告
2018/06/21 Python
Python简单I/O操作示例
2019/03/18 Python
Python3打包exe代码2种方法实例解析
2020/02/17 Python
Python 实现进度条的六种方式
2021/01/06 Python
给护士表扬信
2014/01/19 职场文书
五水共治一句话承诺
2014/05/30 职场文书
教师学习八项规定六项禁令思想汇报
2014/09/27 职场文书
2014年人事部工作总结
2014/12/03 职场文书
客房服务员岗位职责
2015/02/09 职场文书
公司市场部岗位职责
2015/04/15 职场文书
2015年保险公司工作总结
2015/04/24 职场文书
无保留意见审计报告
2015/06/05 职场文书
财务人员入职担保书
2015/09/22 职场文书
2016大学生形势与政策心得体会
2016/01/12 职场文书
宪法宣传标语100条
2019/10/15 职场文书
节约用水广告语60条
2019/11/14 职场文书
SpringBoot生成License的实现示例
2021/06/16 Java/Android
Python编写冷笑话生成器
2022/04/20 Python