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 22 Servers
nginx结合openssl实现https的方法
Jul 25 Servers
详解Nginx 被动检查服务器的存活状态
Oct 16 Servers
了解Kubernetes中的Service和Endpoint
Apr 01 Servers
CentOS下安装Jenkins的完整步骤
Apr 07 Servers
Tomcat弱口令复现及利用
May 06 Servers
利用Apache Common将java对象池化的问题
Jun 16 Servers
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
Jun 25 Servers
vscode远程免密登入Linux服务器的配置方法
Jun 28 Servers
Windows Server 2008配置防火墙策略详解
Jun 28 Servers
详解apache编译安装httpd-2.4.54及三种风格的init程序特点和区别
Jul 15 Servers
Docker容器harbor私有仓库部署和管理
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
基于PHP+MySQL的聊天室设计
2006/10/09 PHP
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
2011/11/07 PHP
PHP 正则表达式小结
2015/02/12 PHP
php实现递归抓取网页类实例
2015/04/03 PHP
JSON 和 JavaScript eval使用说明
2010/06/13 Javascript
THREE.JS入门教程(1)THREE.JS使用前了解
2013/01/24 Javascript
JS两种定义方式的区别、内部原理
2013/11/21 Javascript
jquery做的一个简单的屏幕锁定提示框
2014/03/26 Javascript
node.js中的fs.utimesSync方法使用说明
2014/12/15 Javascript
关于JS中match() 和 exec() 返回值和属性的测试
2016/03/21 Javascript
jquery实现下拉框多选方法介绍
2017/01/03 Javascript
IntersectionObserver实现图片懒加载的示例
2017/09/29 Javascript
微信小程序表单验证WxValidate的使用
2019/11/27 Javascript
如何使用原生Js实现随机点名详解
2021/01/06 Javascript
[00:12]2018DOTA2亚洲邀请赛SOLO赛 MidOne是否中单第一人?
2018/04/05 DOTA
在类Unix系统上开始Python3编程入门
2015/08/20 Python
Python2.7基于笛卡尔积算法实现N个数组的排列组合运算示例
2017/11/23 Python
【python】matplotlib动态显示详解
2019/04/11 Python
python pip源配置,pip配置文件存放位置的方法
2019/07/12 Python
python+selenium+PhantomJS抓取网页动态加载内容
2020/02/25 Python
Pycharm2020.1安装无法启动问题即设置中文插件的方法
2020/08/07 Python
Python制作一个仿QQ办公版的图形登录界面
2020/09/22 Python
python 实现朴素贝叶斯算法的示例
2020/09/30 Python
scrapy-splash简单使用详解
2021/02/21 Python
HTML5验证以及日期显示的实现详解
2013/07/05 HTML / CSS
HTML5 history新特性pushState、replaceState及两者的区别
2015/12/26 HTML / CSS
德国黑胶唱片、街头服装及运动鞋网上商店:HHV
2018/08/24 全球购物
英国网上电器商店:Electricshop
2020/03/15 全球购物
开工仪式主持词
2014/03/20 职场文书
《九寨沟》教学反思
2014/04/08 职场文书
实习介绍信模板
2015/01/30 职场文书
质量负责人岗位职责
2015/02/15 职场文书
商场营业员岗位职责
2015/04/14 职场文书
投诉书范文
2015/07/02 职场文书
优秀乡村医生事迹材料(2016精选版)
2016/02/29 职场文书
少年的你:世界上没有如果,要在第一次就勇敢的反抗
2019/11/20 职场文书