這里寫目錄標題
- Nginx服務優化
- 隱藏版本號
- 方法一
- 方法二:修改原始碼檔案,重新編譯安裝
- 修改用戶與組
- 配置網頁快取時間
- 日志分割
- 設定連接超時
- Nginx深入優化
- 更改行程數
- 進行網頁壓縮
- 配置防盜鏈
Nginx服務優化
隱藏版本號
在生產環境中,需要隱藏 Nginx 的版本號,以避免泄露 Nginx 的版本,使攻擊者不能針對特定版本進行攻擊
首先使用curl -I http://192.168.64.129參看版本號

接下來使用兩種方法隱藏版本號
方法一
vim /usr/local/nginx/conf/nginx.conf
http {
include mime. types;
default_type application/octet-stream;
server_tokens off;
#添加,關閉版本號
......
}
systemctl restart nginx
curl -I http://192.168.64.129


方法二:修改原始碼檔案,重新編譯安裝
進入原始碼檔案

保存退出后
cd /opt/nginx-1.12.0/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
make -j 4 && make install
顯示成偽裝后的版本

修改用戶與組
vim /usr/local/nginx/conf/nginx.conf
user nginx nginx;
#取消注釋,修改用戶為nginx,組為nginx
systemctl restart nginx
ps aux | grep nginx
#主行程由root創建,子行程由nginx創建

配置網頁快取時間
當Nginx將網頁資料回傳給客戶端后,可設定快取的時間,以方便在日后進行相同內容的請求時直接回傳,避免重復請求,加快了訪問速度一般針對靜態網頁設定,對動態網頁不設定快取時間,


添加兩張格式為上面設定的格式圖片


Cache-Control:"max-age=86400"表示快取時間是86400秒,即快取一天時間,
一天的時間內瀏覽器訪問這個頁面都是用的快取中的資料,從而不需要向服務器重新發出請求,減少了服務器的使用帶寬,
日志分割
隨著 Nginx 運行時間的增加,產生的日志也會增加,為了方便掌握 Nginx 的運行狀態,需要時刻關注 Nginx 日志檔案,但是太大了,所以可以按天分割一天一份日志,在固定的時間切割

設定每天凌晨1點運行切割腳本命令

查詢一下

設定連接超時
在企業網站中,為了避免同一個客戶長時間占用連接,造成資源浪費,可以設定相應的超時引數,實作對連接訪問時間的控制,
HTTP 有一個 KeepAlive 模式,它告訴 web 服務器在處理完一個請求后保持這個 TCP 連接的打開狀態,若接收到來自客戶端的其它請求,服務端會利用這個未被關閉的連接,而不需要再建立一個連接,
KeepAlive 在一段時間內保持打開狀態,它們會在這段時間內占用資源,而占用過多就會影響性能,

keepalive timeout:指定KeepAlive的超時時間(timeout )
指定每個TCP連接最多可以保持多長時間,服務器將會在這個時間后關閉連接
Nginx的默認值是65秒,有些瀏覽器最多只保持60秒,所以可以設定為60秒,若將它設定為0,就禁止了keepalive 連接
第二個引數(可選的)指定了在回應頭Keep-Alive: timeout=time中的time值
這個頭能夠讓一些瀏覽器主動關閉連接,這樣服務器就不必去關閉連接了
沒有這個引數,Nginx 不會發送 Keep-Alive 回應頭
client_header_timeout:
客戶端向服務端發送一個完整的request header 的超時時間
如果客戶端在指定時間內沒有發送一個完整的 request header, Nginx 回傳 HTTP 408 (Request Timed Out),
client body_timeout:
指定客戶端與服務端建立連接后發送 request body 的超時時間
如果客戶端在指定時間內沒有發送任何內容,Nginx 回傳 HTTP
408 (Request Timed Out)

Nginx深入優化
更改行程數
運行中的程式,master是Nginx的主程式,work是子行程



重啟服務并重新查詢

進行網頁壓縮
vim /usr/local/nginx/conf/nginx.conf
gzip on;
#取消注釋,開啟gzip壓縮功能
gzip_min_length 1k;
#用于設定允許壓縮的頁面最小字數
gzip_buffers 4 16k;
#表示申請4個單位為16KB的記憶體作為壓縮結果流快取,默認值是申請與原始資料大小相同的記憶體空間來存盤gzip壓縮效果
gzip_http_version 1.1;
#用于識別http協議版本,默認是1.1,目前大部分瀏覽器已支持gzip壓縮,但處理很慢,也比較消耗CPU資源
gzip_comp_level 6;
#用來指定gzip壓縮比,壓縮比1最小,處理速度最快;壓縮比為9最大,傳輸速度快,但處理速度最慢,使用默認即可
gzip_vary on;
#該選項可以讓前端的快取服務器快取經過gzip壓縮的頁面
gzip_types text/plain application/x-javascript text/css image/jpg image/jpeg image/png image/gif application/xml text/javascript application/x-httpd-php application/javascript application/json;
#壓縮型別,指對哪些網頁檔案啟用壓縮功能


配置防盜鏈
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/286866.html
標籤:其他
上一篇:ansible roles在 Centos 和 Ubuntu編譯安裝Nginx
下一篇:Nginx四層負載均衡
