1. 程式人生 > >NGINX 優化 之 十二

NGINX 優化 之 十二

復用 模式 RoCE 並發連接數 查看 模塊 命令 軟件 ror

一、NGINX 基本安全優化

1、隱藏NGINX軟件版本號信息

[root@localhost nginx2]# curl -I 10.3.151.34
HTTP/1.1 502 Bad Gateway
Server: nginx/1.13.4
Date: Tue, 24 Jul 2018 01:22:28 GMT
Content-Type: text/html
Content-Length: 537
Connection: keep-alive
ETag: "5b505df9-219"

2、NGINX配置文件nginx.conf中的http標簽段內加入“server_tokens off” 參數:

http
{
        server_tokens off;
}

二、根據服務器性能調整worker進程個數

1、worker進程理解

NGINX服務有Master進程和worker進程之分,Maste為管理進程,Worker為工作進程,而Worker進程默認為1個,而在搭建服務器時,可根據CPU的核數進程設置。

2、查看服務器CPU核數

[root@localhost nginx2]# grep processor /proc/cpuinfo | wc -l
8
或者通過top命令,然後按“1”就可查看CPU核數

3、修改worker進程數

worker_processes  8;

三、NGINX事件處理模型優化

1、nginx事件處理模型理解

NGINX的連接處理機制在不同的操作系統會采用不同的I/O模型,在LINUX下,NGINX使用EPOLL的I/O多路復用模型,在WINDOWS中使用的是ICOP。

2、修改事件處理

events {
    use epoll;       
    #根據官方文檔建議,也可以不指定事件處理模型,NGINX會自動選擇最佳的模式。
}

四、調整NGINX單個進程允許的最大客戶端並發連接數

1、單進程最大並發連接數理解

worker_connections 也是個事件模塊指令,用於定義NGINX每個進程的最大連接數,默認為1024,最大客戶端連接數由work_processes和worker_connections決定,即Max_client=worker_processes*worker_connections。進程的最大連接數受linux系統進程的最大打開文件數限制,在執行操作系統“ULIMIT -HSn 65535” 或配置相應文件後,worker_connections的設置才能生效。

2、修改單進程最大並發連接數配置

events {
worker_connections  10240;
}

四、調整NGINX worker進程最大打開文件數

1、進程最大打開文件數理解

最大打開文件數,可設置為系統優化後的ulimit -HSn 的結果。

2、修改進程最大打開文件數

worker_processes  8;
events {
        worker_connections  1024;
}
worker_rlimit_nofile 65535;      #進程最大打開文件數
error_log  logs/error.log;

NGINX 優化 之 十二