一、隱藏版本號
1.1隱藏版本號的操作步驟
可以使用 Fiddler 工具抓取資料包,查看 Nginx版本,也可以在CentO S中使用命令curl -I http://192.168.10.10顯示回應報文首部資訊,
curl -I http://192.168.10.10
方法一:修改組態檔方式
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.10.10
方法二:修改原始碼檔案,重新編譯安裝
vim /opt/nginx-1.12.2/src/core/nginx.h
#define NGINX_VERSION "1.1.1" #修改版本號 #define NGINX_VER "IIS" NGINX_VERSION #修改服務器型別 cd /opt/nginx-1.12.0/ ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module make && make install vim /usr/local/nginx/conf/nginx.conf http { include mime.types; default_type application/octet-stream; server_tokens on; ...... } systemctl restart nginx curl -I http://192.168.10.10
1.2實體操作:隱藏版本號
方法一:修改組態檔方式

![]()


二、修改用戶與組
![]()
![]()
三、快取時間
3.1快取時間的操作步驟
vim /usr/local/nginx/conf/nginx.conf http { ...... server { ...... location / { root html; index index.html index.htm; } location ~ \.(gif|jpg|jepg|png|bmp|ico)$ { #加入新的 location,以圖片作為快取物件 root html; expires 1d; #指定快取時間,1天 } ...... } } systemctl restart nginx
- 在Linux系統中,打開火狐瀏覽器,右擊點查看元素,選擇 網路------>選擇HTML、WS、其它,
- 訪問 http://192.168.10.10,雙擊200回應訊息查看回應頭中包含 Cahce-Control:max-age=86400 表示快取時間是 86400 秒,也就是快取一天的時間,一天之內瀏覽器訪問這個頁面,都是用快取中的資料,而不需要向 Nginx 服務器重新發出請求,減少了服務器的使用帶寬,
3.2實體操作:快取時間
3.2.1 修改主組態檔
![]()

![]()
3.2.2 傳入圖片并對網頁檔案進行編輯


3.2.3 瀏覽器中訪問并查看是否有效

四、日志切割
4.1日志切割的操作步驟
vi /opt/fenge.sh #!/bin/bash # Filename: fenge.sh d=$(date -d "-1 day" "+%Y%m%d") #顯示前一天的時間 logs_path="/var/log/nginx" pid_path="/usr/local/nginx/logs/nginx.pid" [ -d $logs_path ] || mkdir -p $logs_path #創建日志檔案目錄 mv /usr/local/nginx/logs/access.log ${logs_path}/kgc.com-access.log-$d #移動并重命名日志檔案 kill -USR1 $(cat $pid_path) #重建新日志檔案 find $logs_path -mtime +30 -exec rm -rf {} \; #洗掉30天之前的日志檔案 #find $logs_path -mtime +30 |xargs rm -rf chmod +x /opt/fenge.sh /opt/fenge.sh ls /var/log/nginx ls /usr/local/nginx/logs/access.log crontab -e 0 1 * * * /opt/fenge.sh
小知識
- 在linux作業系統中,每個檔案都有很多的時間引數,其中有三個比較主要,分別是ctime,atime,mtime,
- ctime(status time): 當修改檔案的權限或者屬性的時候,就會更新這個時間,ctime并不是createtime,更像是change time, 只有當更新檔案的屬性或者權限的時候才會更新這個時間,但是更改內容的話是不會更新這個時間,
- atime(accesstime): 當使用這個檔案的時候就會更新這個時間,
- mtime(modification time):當修改檔案的內容資料的時候,就會更新這個時間,而更改權限或者屬性,mtime不會改變,這就是和ctime的區別,
4.2實體操作:日志切割
4.2.1 撰寫腳本

4.2.2 執行腳本,查看日志分割是否實作
![]()
![]()
4.2.3 做計劃性任務,每天定時做日志分割

![]()
五、連接超時
- HTTP有一個KeepAlive模式,它告訴web服務器在處理完一個請求后保持這個TCP連接的打開狀態,若接收到來自客戶端的其它請求,服務端會利用這個未被關閉的連接,而不需要再建立一個連接,
- KeepAlive 在一段時間內保持打開狀態,它們會在這段時間內占用資源,占用過多就會影響性能,
5.1連接超時的操作步驟
vim /usr/local/nginx/conf/nginx.conf http { ...... keepalive_timeout 65 180; client_header_timeout 80; client_body_timeout 80; ...... } systemctl restart nginx
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),
5.2實體操作:連接超時
5.2.1修改主組態檔
![]()

![]()
5.2.2瀏覽器訪問測驗

六、更改行程數
6.1更改行程數的操作步驟
cat /proc/cpuinfo | grep -c "physical id" #查看cpu核數 ps aux | grep nginx #查看nginx主行程中包含幾個子行程 vim /usr/local/nginx/conf/nginx.conf worker_processes 2; #修改為核數相同或者2倍 worker_cpu_affinity 01 10; #設定每個行程由不同cpu處理,行程數配為4時0001 0010 0100 1000 systemctl restart nginx vim /usr/local/nginx/conf/nginx.conf worker processes 2; #修改作業行程數量為核數相同或者2倍 worker_cpu_ affinity 01 10; #設定每個行程由不同cpu處理,行程數配為4時的格式:0001 0010 0100 1000 worker_connections 6000; #修改每個行程處理的最大連接數 #如提高每個行程的連接數還需執行"ulimit -n 65535"(65535最大值)命令臨時修改本地每個行程可以同時打開的最大檔案數, systemctl restart nginx
6.2實體操作:更改行程數

![]()

補充1:更改行程的最大行程連接數量(worker_connections)不超過65535
![]()

![]()
補充2:重啟服務,并提高系統限制的行程限制數
七、配置網頁壓縮
Nginx的ngx_http_gzip_module壓縮模塊提供對檔案內容壓縮的功能,允許Nginx服務器將輸出內容在發送客戶端之前進行壓縮,以節約網站帶寬,提升用戶的訪問體驗,默認已經安裝,可在組態檔中加入相應的壓縮功能引數對壓縮性能進行優化,
7.1配置網頁壓縮的操作步驟
vim /usr/local/nginx/conf/nginx.conf http { ...... gzip on; #取消注釋,開啟gzip壓縮功能 gzip_min_length 1k; #最小壓縮檔案大小 gzip_buffers 4 16k; #壓碩訓沖區,大小為4個16k緩沖區 gzip_http_version 1.1; #壓縮版本(默認1.1,前端如果是squid2.5請使用1.0) 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; #壓縮型別,表示哪些網頁檔案啟用壓縮功能 ...... }
在上面的實驗中已經修改了網頁內容并插入圖片,在此省略
cd /usr/local/nginx/html 先將game.jpg檔案傳到/usr/local/nginx/html目錄下 vim index.html ...... <img src=https://www.cnblogs.com/feizirui/archive/2022/11/14/"meme.jpg"/> #網頁中插入圖片 </body> </html> systemctl restart nginx
測驗:
在Linux系統中,打開火狐瀏覽器,右擊點查看元素,選擇 網路 —> 選擇 HTML、WS、其他,訪問 http://192.168.2.66 ,雙擊200回應訊息查看回應頭中包含 Content-Encoding: gzip,
7.2實體操作:配置網頁壓縮
7.2.1 修改組態檔并重啟服務
![]()

![]()
八、配置防盜鏈
8.1配置防盜鏈的操作步驟
vim /usr/local/nginx/conf/nginx.conf http { ...... server { ...... location ~*\.(jpg|gif|swf)$ { valid_referers *.ly.com ly.com; if ( $invalid_referer ) { rewrite ^/ http://www.zzz.com/error.png; #return 403; } } ...... } }
~* .(jpg|gif|swf)$ :這段正則運算式表示匹配不區分大小寫,以.jpg 或.gif 或.swf 結尾的檔案;
valid_referers :設定信任的網站,可以正常使用圖片;
后面的網址或者域名 :referer 中包含相關字串的網址;
if陳述句:如果鏈接的來源域名不在valid_referers所列出的串列中,$invalid_referer為1,則執行后面的操作,即進行重寫或回傳 403 頁面,
網頁準備: Web源主機(192.168.10.10)配置: cd /usr/local/nginx/html 將1.jpeg、error.png檔案傳到/usr/local/nginx/html目錄下 vim index.html ...... <img src=https://www.cnblogs.com/feizirui/archive/2022/11/14/"1.jpeg"/> </body> </html> echo "192.168.10.10 www.fzr.com" >> /etc/hosts echo "192.168.10.20 www.zzj.com" >> /etc/hosts 盜鏈網站主機(192.168.10.20): cd /usr/local/nginx/html vim index.html ...... <img src=https://www.cnblogs.com/feizirui/archive/2022/11/14/"http://www.xkq.com/1.jpeg"/> </body> </html> echo "192.168.10.10 www.fzr.com" >> /etc/hosts echo "192.168.10.20 www.zzj.com" >> /etc/hosts 在盜圖網站主機上進行瀏覽器驗證 http://www.fzr.com
8.2實體操作:配置防盜鏈
8.2.1盜鏈主機網頁準備

8.2.2盜鏈主機臨時添加域名和IP的映射關系
![]()
![]()
8.2.3瀏覽器訪問盜鏈主機的網頁(測驗時源主機也要做映射)

8.2.4修改源主機的nginx主組態檔

8.2.5重啟服務

8.2.6放入防盜鏈圖片
![]()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/533542.html
標籤:其他
