Nginx服務安全設定和引數調優

2022-08-17 23:45:10 字數 2830 閱讀 7995

#http標籤下新增

server_tokens off;

#測試[root@cobbler ~]# curl -i 172.16.1.15

server: nginx #這裡已經沒有版本號了

#通過修改原始碼將nginx及版本號替換為其他名稱,更改完要重新編譯

1. vim nginx-1.6.3/src/core/nginx.h #軟體資訊

3. vim nginx-1.6.3/src/http/ngx_http_special_response.c #報錯頁面資訊展示

22 "" nginx_ver "(" crlf

29 "peter" crlf

#重新編譯後,進行測試

[root@cobbler nginx-1.6.3]# curl -i 172.16.1.15

server: peter

#方法1:修改配置檔案

user nginx nginx;

#方法2:編譯時新增使用者引數

#一般而言,worker程序的數量應等於cpu的核數;對於高併發業務,worker程序數量可以等於核數的2倍。

#修改nginx配置檔案

worker_processes 2;

#檢視cpu核心數量

[root@cobbler ~]# grep processor /proc/cpuinfo | wc -l

2#檢視物理cpu的個數

[root@cobbler ~]# grep 'physical id' /proc/cpuinfo | sort | uniq | wc -l

1#reload後檢查結果

[root@cobbler ~]# ps -ef | grep nginx

root 48290 1 0 18:02 ? 00:00:00 nginx: master process sbin/nginx

nginx 54530 48290 0 20:25 ? 00:00:00 nginx: worker process

nginx 54531 48290 0 20:25 ? 00:00:00 nginx: worker process

#注:uniq是乙個去重命令,但注意aabb可以變為ab,abab則還是abab。所以去重之前要先用sort進行排序。

#主要使用引數worker_cpu_affinity 配置worker和cpu的親和度

worker_processes 4;

worker_cpu_affinity 0001 0010 0100 1000; # 這裡0001 0010 0100 1000是掩碼,分別代表第1、2、3、4核cpu

#假設worker程序數為4,cpu核心數為4,則掩碼就為4位,分別對應不同的cpu核心。

#如果worker程序數為2,cpu核心數為4,則可以按照0101、1010為每個程序分配兩個核心。

#八核cpu則按照00000001、00000010依次分配

#可以使用壓力測試工具webbench進行壓力測試,top觀察每個cpu的使用率

#nginx的連線處理機制在不同的作業系統下會使用不同的i/o模型。linux系統下使用epoll的i/o多路復用模型。

配置引數為use epoll,注意設定在events標籤下,events區塊用於設定連線程序。

events

#引數worker_connections 20480;也是在events標籤下設定;注意使用「ulimit -hsn 65535」設定單個程序的檔案描述符的最大數量

events

#可以和ulimit的設定的數量一樣,main標籤下。

worker_rlimit_nofile 65535;

#sendfile()函式用於核心中進行兩個檔案描述符之間的資料拷貝,由於在核心執行,效率相比read write要高

#tcp_nopush引數允許將http response header和body的開始部分放在乙個檔案裡進行發布,可以減少網路報文段的數量,提高i/o效能

#tcp_nodelay用於當資料傳送時,核心不會馬上傳送,會等待更多的位元組然後傳送以提高i/o效能,如果小檔案比較多就不要開啟了,

#不然等待時間會比較長。

http

#keepalive_timeout用於設定連線超時,當客戶端長時間沒有請求則關閉tcp連線

#client_header_timeout用於設定讀取請求頭資料的超時時間,防止客戶端利用http協議進行攻擊

#client_body_timeout用於設定讀取請求主體的超時時間,指2次成功讀取之間的間隔

#send_timeout用於設定使用者兩次活動之間的間隔

#client_max_body_size用於限制請求主體的大小

Nginx效能調優引數設定

1.1阻塞和非阻塞網路模型 同步阻塞模型,當相求程序或者執行緒數量增加到一定程度後,效能會急劇下降,負載率不高。不建議使用 nginx基於事件的非阻塞多路復用 epool或kquene 模型,乙個程序在短時間內可以響應大量的請求。建議使用 1.2cpu個數 建議 小於等於cpu核心的數量,一般高於c...

nginx引數調優

不完整配置參考 可參考修改或新增以下配置 引數說明 nginx程序數,一般設定為cpu核數量,grep processor proc cpuinfo wc l 命令可獲得cpu核數。將worker process與指定cpu核繫結,降低由於多cpu核切換造成的暫存器等現場重建帶來的效能損耗 如果為2...

nginx安全引數

strict transport security,簡稱hsts。該響應頭用於標識瀏覽器用https替代http的方式去訪問目標站點。我們知道https相對於http有更好的安全性,而很多https 也可以通過http來訪問。開發人員的失誤或者使用者主動輸入位址,都有可能導致使用者以http訪問 降...