加入收藏 | 设为首页 | 会员中心 | 我要投稿 瑞安网 (https://www.ruian888.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

nginx.conf 配置及基本优化

发布时间:2021-02-08 02:04:09 所属栏目:Linux 来源:网络整理
导读:一:常用功能优化: 1:网络连接的优化: 只能在events模块设置,用于防止在同一一个时刻只有一个请求的情况下,出现多个睡眠进程会被唤醒但只能有一个进程可获得请求的尴尬,如果不优化,在多进程的nginx会影响以部分性能。 events {accept_mutex on; #优化

要求:在html/localtion/myweb 里面有个index.html文件里面写了myweb,当访问nginx 服务器的/myweb的时候要显示此html文件的内容:

location ~/<span style="color: #000000"&gt;myweb { #区分大小写,即访问Myweb是不行的
    root html/localtion;  #定义myweb所在的路径,即在浏览器访问myweb的时候,实际是访问的html/localtion/<span style="color: #000000"&gt;myweb目录里面的web内容
    index   index.html; #默认首页文件类型
}
    error_page   <span style="color: #800080"&gt;500 <span style="color: #800080"&gt;502 <span style="color: #800080"&gt;503 <span style="color: #800080"&gt;504  /<span style="color: #000000"&gt;50x.html;
    location = /<span style="color: #000000"&gt;50x.html {
        root   html;
    }</span></span></span></span></span></span></span></span></span></span></span></span></span></pre>

<div class="cnblogs_code_toolbar"><span class="cnblogs_code_copy"><a title="复制代码">

<img src="https://www.52php.cn/res/2019/02-12/10/51e409b11aa51c150090697429a953ed.gif" alt="复制代码">

验证如下:

nginx.conf 配置及基本优化

三:sysctl.conf针对IPv4内核的7个参数的配置优化:

1、net.core.netdev_max_backlog ?#每个网络接口的处理速率比内核处理包的速度快的时候,允许发送队列的最大数目。

[root@Server1 nginx]# sysctl -a |

2、net.core.somaxconn: #用于调节系统同时发起的TCP连接数,默认值一般为128,在客户端存在高并发请求的时候,128就变得比较小了,可能会导致链接超时或者重传问题。

net.core.somaxconn =

3、net.ipv4.tcp_max_orphans:设置系统中做多允许多少TCP套接字不被关联到任何一个用户文件句柄上,如果超出这个值,没有与用户文件句柄关联的TCP套接字将立即被复位,同时给出警告信息,这个值是简单防止DDOS(Denial of service)的攻击,在内存比较充足的时候可以设置大一些:

net.ipv4.tcp_max_orphans =

4、net.ipv4.tcp_max_syn_backlog #用于记录尚未收到客户度确认消息的连接请求的最大值,一般要设置大一些:

net.ipv4.tcp_max_syn_backlog =

5、net.ipv4.tcp_timestamps #用于设置时间戳,可以避免序列号的卷绕,有时候会出现数据包用之前的序列号的情况,此值默认为1表示不允许序列号的数据包,对于Nginx服务器来说,要改为0禁用对于TCP时间戳的支持,这样TCP协议会让内核接受这种数据包,从而避免网络异常,如下:

net.ipv4.tcp_timestamps =

6、net.ipv4.tcp_synack_retries #用于设置内核放弃TCP连接之前向客户端发生SYN+ACK包的数量,网络连接建立需要三次握手,客户端首先向服务器发生一个连接请求,服务器收到后由内核回复一个SYN+ACK的报文,这个值不能设置过多,会影响服务器的性能,还会引起syn攻击:

net.ipv4.tcp_synack_retries =

7、net.ipv4.tcp_syn_retries ?#与上一个功能类似,设置为1即可:

net.ipv4.tcp_syn_retries =

四:配置文件中针对CPU的2个优化参数:

1、woker_precess #设置Nginx 启动多少个工作进程的数量2、woker_cpu_affinit #固定Nginx 工作进程所运行的CPU核心

五:配置文件中与网络相关的4个指令:




<p class="header-name">六:配置文件中与驱动模型相关的8个指令:?


<p class="header-name">1、use; #用于指定Nginx 使用的事件驱动模型


<p class="header-name">2、woker_process; #指定Nginx启动的工作进程的数量


<p class="header-name">3、woker_connections ?65535; #指定Nginx 每个工作进程的最大连接数,woker_connections ?* ?woker_process即为Nginx的最大连接数量。


<p class="header-name">4、woker_rlimit_sigpending 65535 ?#Nginx每个进程的事件信号队列的上限长度,如果超出长度,Nginx则使用poll模型处理客户的请求。


<p class="header-name">5、devpoll_changes 和 devpoll_events #用于设置Nginx 在/dev/poll 模型下Nginx服务器可以与内核之间传递事件的数量,前一个设置传递给内核的事件数量,后一个设置从内核读取的事件数量,默认为512。


<p class="header-name">6、kqueue_changes 和 kqueue_events #设置在kqueue模型下Nginx服务器可以与内核之间传递事件的数量,前一个设置传递给内核的事件数量,后一个设置从内核读取的事件数量,默认为512。


<p class="header-name">7、epoll_events #设置在epoll驱动模式下Nginx 服务器可以与内核之间传递事件的数量,默认为512。


<p class="header-name">8、rtsig_signo ?#设置Nginx在rtsig 模式使用的两个信号中的第一个,第二个信号是在第一个信号的编号上加1.


<p class="header-name">9、rtsig_overflow #这些参数指定如何处理rtsig队列溢出。当溢出发生在nginx清空rtsig队列时,它们将连续调用poll()和 rtsig.poll()来处理未完成的事件,直到rtsig被排空以防止新的溢出,当溢出处理完毕,nginx再次启用rtsig模式,rtsig_overflow_events specifies指定经过poll()的事件数,默认为16,rtsig_overflow_test指定poll()处理多少事件后nginx将排空rtsig队列,默认值为32,rtsig_overflow_threshold只能运行在Linux 2.4.x内核下,在排空rtsig队列前nginx检查内核以确定队列是怎样被填满的。默认值为1/10,“rtsig_overflow_threshold 3”意为1/3。

(编辑:瑞安网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读