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限制并发连接请求数的方法
Apr 01 Servers
nginx服务器的下载安装与使用详解
Aug 02 Servers
nginx安装以及配置的详细过程记录
Sep 15 Servers
Nginx图片服务器配置之后图片访问404的问题解决
Mar 21 Servers
Nginx流量拷贝ngx_http_mirror_module模块使用方法详解
Apr 07 Servers
nginx日志格式分析和修改
Apr 28 Servers
Win10 Anaconda安装python-pcl
Apr 29 Servers
使用 Docker Compose 构建复杂的多容器App
Apr 30 Servers
Tomcat 与 maven 的安装与使用教程
Jun 16 Servers
Linux服务器离线安装 nginx的详细步骤
Jun 16 Servers
windows server2016安装oracle 11g的图文教程
Jul 15 Servers
阿里云服务器(windows)手动部署FTP站点详细教程
Aug 05 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
收音机另类DIY - 纸巾盒做外壳
2021/03/02 无线电
浅谈PHP 闭包特性在实际应用中的问题
2009/10/30 PHP
在PHP中实现Javascript的escape()函数代码
2010/08/08 PHP
小文件php+SQLite存储方案
2010/09/04 PHP
遍历jquery对象的代码分享
2011/11/02 Javascript
js实现简单登录功能的实例代码
2013/11/09 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2014/09/04 Javascript
jquery禁止回车触发表单提交
2014/12/12 Javascript
根据配置文件加载js依赖模块
2014/12/29 Javascript
javascript事件委托的方式绑定详解
2015/06/10 Javascript
jQuery控制li上下循环滚动插件用法实例(附demo源码下载)
2016/05/28 Javascript
angular实现页面打印局部功能的思考与方法
2018/04/13 Javascript
关于node-bindings无法在Electron中使用的解决办法
2018/12/18 Javascript
python回调函数的使用方法
2014/01/23 Python
谈谈Python进行验证码识别的一些想法
2016/01/25 Python
python selenium 对浏览器标签页进行关闭和切换的方法
2018/05/21 Python
Django Admin实现三级联动的示例代码(省市区)
2018/06/22 Python
实例讲解Python脚本成为Windows中运行的exe文件
2019/01/24 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
2019/06/19 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
2019/06/20 Python
python绘制随机网络图形示例
2019/11/21 Python
python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法
2020/02/27 Python
使用CSS3 制作一个material-design 风格登录界面实例
2016/12/12 HTML / CSS
澳大利亚领先的宠物用品商店:VetSupply
2017/09/08 全球购物
上海期货面试题
2014/01/31 面试题
运动会广播稿60字
2014/01/15 职场文书
小学生寒假家长评语
2014/04/16 职场文书
初一新生军训方案
2014/05/22 职场文书
银行优秀员工事迹材料
2014/05/29 职场文书
2014年党总支工作总结
2014/12/18 职场文书
校园广播站开场白
2015/06/01 职场文书
爱护公物主题班会
2015/08/17 职场文书
总结Pyinstaller打包的高级用法
2021/06/28 Python
什么是动态刷新率DRR? Windows11动态刷新率功能介绍
2021/11/21 数码科技
Python查找算法的实现 (线性、二分,分块、插值查找算法)
2022/04/24 Python
Python实现双向链表
2022/05/25 Python