nginx.conf 配置及基本优化
要求:在html/localtion/myweb 里面有个index.html文件里面写了myweb,当访问nginx 服务器的/myweb的时候要显示此html文件的内容:
<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="复制代码"> 验证如下: 三: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。 (编辑:瑞安网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |