Nginx優化與防盜鏈
隱藏Nginx版本號,避免安全漏洞泄露
第一種方法:修改組態檔
1.進nginx.conf檔案
[root@zzz ~]# cd /usr/local/nginx/conf/
[root@zzz conf]# vim nginx.conf

2.重啟服務,驗證
[root@zzz conf]# systemctl restart nginx.service

也能通過命令獲取

第二種方法:修改原始碼法



make && make install
[root@zzz nginx-1.12.2]# cd /usr/local/nginx/conf/
[root@zzz conf]# vim nginx.conf

重啟服務
systemctl restart nginx

修改Nginx用戶與組
修改的方法
第一種:編譯安裝時指定用戶與組
第二種:修改組態檔指定用戶與組


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

重啟服務
[root@zzz conf]# systemctl restart nginx.service

實作Nginx的日志切割
撰寫腳本進行日志切割的思路
- 設定時間變數
- 設定保存日志路徑
- 將目前的日志檔案進行重命名
- 重鍵新日志檔案
- 洗掉時間過長的日志檔案
- 設定cron任務,定期執行腳本自動進行日志分割
腳本內容如下

在腳本倒數第二行 PID_PATH加上$符號


配置Nginx實作連接超時
為避免同一客戶端長時間占用連接,造成資源浪費,可設定相應的連接超時引數,實作控制連接訪問時間
超時引數
Keepalive_timeout
設定連接保持超時時間
Client_header_timeout
指定等待客戶段發送請求頭的超時時間
Client_body_timeout
設定請求體讀超時時間
[root@zzz nginx]# cd /usr/local/nginx/conf/
[root@zzz conf]# vim nginx.conf

systemctl restart nginx

更改Nginx運行行程數
默認情況,Nginx的多個行程可能跑在一個CPU上,可以分配不同的行程給不同的CPU處理,充分利用硬體多核多CPU
[root@zzz conf]# vim nginx.conf

[root@zzz conf]# ulimit 10240
[root@zzz conf]# systemctl restart nginx.service
默認情況,Nginx的多個行程可能跑在一個CPU上,可以分配不同的行程給不同的CPU處理,充分利用硬體多核多CPU
在一臺4核物理服務器,進行配置,將行程進行分配
重啟服務
[root@zzz conf]# systemctl restart nginx
配置Nginx實作網頁壓縮功能
-
Nginx的ngx_http_gzip_module壓縮模塊提供對檔案內容壓縮的功能
-
允許Nginx服務器將輸出內容在發送客戶端之前進行壓縮,以
約網站帶寬,提升用戶的訪問體驗,默認已經安裝
-
可在組態檔中加入相應的壓縮功能引數對壓縮性能進行優化
壓縮功能引數
gzip on: 開啟gzip壓縮輸出
gzip_min_length 1k: 設定允許壓縮的頁面最小位元組數
gzip_buffers 4 16k:申請4個單位為16k的記憶體作為壓縮結果流快取,默認值是申請與原始資料大小相同的記憶體空間來存盤gzip壓縮結果
gzip_http_version 1.0: 設定識別http協議版本,默認是1.1,目前大部分瀏覽器已經支持gzip解壓,但處理較慢,也比較消耗服務器CPU資源
gzip_comp_level 2: 指定gzip壓縮比,1壓縮比最小,處理速度最快;9壓縮比最大,傳輸速度快,但處理速度最慢
gzip_types text/plain:壓縮型別,對哪些網頁檔案啟用壓縮功能
gzip_vary on:讓前端快取服務器快取經過gzip壓縮的頁面
[root@zzz conf]# vim nginx.conf

gzip on;
gzip_min_length 1k;
gzip_buffers 4 64k;
gzip_http_version 1.1;
gzip_comp_level 6;
gzip_vary on;
gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss image/jpg image/jpeg image/png image/gif application/x-httpd-php application/javascript application/json;
[root@zzz conf]# systemctl restart nginx.service
[root@zzz conf]# cd ..
[root@zzz nginx]# cd html/
[root@zzz html]# vim index.html

打開網頁驗證

配置Nginx防盜鏈
[root@zzz html]# cd /usr/local/nginx/conf
[root@zzz conf]# vim nginx.conf

location ~* \.(jpg|gif|jpeg|swf)$ {
root html;
expires 1d;
valid_referers none blocked *.kgc.com kgc.com;
if ( $invalid_referer ) {
rewrite ^/ http://www.kgc.com/error.png;
}
}
---------------------------------------------------------------
~* \.(jpg|gif|swf)$ :這段正則運算式表示匹配不區分大小寫,以.jpg或.gif或.swf 結尾的檔案;
valid_referers : 設定信任的網站,可以正常使用圖片;
none: 允許沒有http_refer的請求訪問資源(根據Referer的定義,它的作用是指示一個請求是從哪里鏈接過來的,如果直接在瀏覽器的地址欄中輸入一個資源的URL地址,那么這種請求是不會包含 Referer欄位的) 如 http://www.kgc.com/13.jpg
我們使用http://www.kgc.com 訪問顯示的圖片, 可以理解成 http://www.kgc.com/13.jpg這個請求是從http://www.kgc.com這個連接過來的
blocked:允許不是http://開頭的,不帶協議的請求訪問資源;
*.kgc.com:只允許來自指定域名的請求訪問資源,如 http://www.kgc.com
if陳述句:如果鏈接的來源域名不在valid_referers所列出的串列中,$invalid_ referer為true,則執行后面的操作,即進行重寫或回傳403頁面,
[root@zzz conf]# systemctl restart nginx.service
準備一臺盜鏈機
先安裝nginx服務(這里不做演示,有需要看上一章博客)

[root@localhost html]# vim index.html

開瀏覽器驗證

``
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/413347.html
標籤:其他
上一篇:C/C++ Socket - TCP 與 UDP 網路編程
下一篇:【SSL_1232】雷達覆寫
