1. 隱藏版本號
以在 CentOS 中使用命令 curl -I http://192.168.66.10 顯示響應報文首部信息。
查看版本號
- curl -I http://192.168.66.10
1. 修改配置文件
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.66.10
隱藏成功
2.?修改源碼文件,重新編譯安裝
vim /opt/nginx-1.12.0/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 installvim /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.66.10
2.?修改用戶與組
vim /usr/local/nginx/conf/nginx.conf
user nginx nginx; #取消注釋,修改用戶為 nginx ,組為 nginxsystemctl restart nginxps aux | grep nginx
3. 頁面緩存時間
當Nginx將網頁數據返回給客戶端后,可設置緩存的時間,以方便在日后進行相同內容的請求時直接返回,避免重復請求,加快了訪問速度,一般針對靜態網頁設置,對動態網頁不設置緩存時間
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天}
......}
}
設置主頁圖片
編輯主頁文件
[root@localhost html]# vim index.html -------------------------------------------------------------------------
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title></head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p><p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p><p><em>Thank you for using nginx.</em></p><img src="111.jpg"/>
4.?日志切割
vim /opt/fenge.sh
#!/bin/bash
# Filename: fenge.sh
day=$(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-$day #移動并重命名日志文件
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
5.?連接超時
HTTP有一個KeepAlive模式,它告訴web服務器在處理完一個請求后保持這個TCP連接的打開狀態。若接收到來自同一客戶端的其它請求,服務端會利用這個未被關閉的連接,而不需要再建立一個連接。
KeepAlive 在一段時間內保持打開狀態,它們會在這段時間內占用資源。占用過多就會影響性能。
?
vim /usr/local/nginx/conf/nginx.conf
http {
...... keepalive_timeout 60 60;keepalive_requests 10000;client_header_timeout 80;client_body_timeout 80;
......
}systemctl restart nginx
6.更改進程數
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
#將每個worker子進程與特定CPU物理核心綁定,提升cpu利用率,進而提升性能。避免同一個worker子進程在不同的CPU核心上切換或者多個進程跑在一個CPU上,緩存失效,降低性能。systemctl restart nginx
7. 配置網頁壓縮
Nginx的ngx_http_gzip_module壓縮模塊提供對文件內容壓縮的功能
允許Nginx服務器將輸出內容在發送客戶端之前進行壓縮,以節約網站帶寬,提升用戶的訪問體驗,默認已經安裝
可在配置文件中加入相應的壓縮功能參數對壓縮性能進行優化
?
vim /usr/local/nginx/conf/nginx.conf
http {
...... gzip on; #取消注釋,開啟gzip壓縮功能gzip_min_length 1k; #最小壓縮文件大小gzip_buffers 4 64k; #壓縮緩沖區,大小為4個64k緩沖區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="game.jpg"/> #網頁中插入圖片
</body>
</html>systemctl restart nginx在Linux系統中,打開火狐瀏覽器,右擊點查看元素
選擇 網絡 ---> 選擇 HTML、WS、其他
訪問 http://192.168.66.10 ,雙擊200響應消息查看響應頭中包含 Content-Encoding: gzip
8.?配置防盜鏈
Web源主機(192.168.60.10? www.my.com)
配置映射
[root@localhost ~]# vim /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.66.10 www.my.com
cd /usr/local/nginx/html
將game.jpg、error.png文件傳到/usr/local/nginx/html目錄下
vim index.html
......
<img src="game.jpg"/>
</body>
</html>echo "192.168.66.10 www.kgc.com" >> /etc/hosts
echo "192.168.66.20 www.benet.com" >> /etc/hosts
vim /usr/local/nginx/conf/nginx.conf
http {
......server {......location ~* \.(jpg|gif|swf)$ { #因為自己的盜鏈圖片為png結尾所以此處不設置pngvalid_referers none blocked *.my.com my.com;if ( $invalid_referer ) {rewrite ^/ http://www.my.com/tu2.png;}}......}
}
~* \.(jpg|gif|swf)$ :這段正則表達式表示匹配不區分大小寫,以.jpg 或.gif 或.swf 結尾的文件;valid_referers :設置信任的網站,可以正常使用圖片;none:允許沒有http_refer的請求訪問資源(根據Referer的定義,它的作用是指示一個請求是從哪里鏈接過來的,如果直接在瀏覽器的地址欄中輸入一個資源的URL地址,那么這種請求是不會包含 Referer 字段的),如 http://www.my.com/tu.jpg
我們使用 http://www.my.com 訪問顯示的圖片,可以理解成 http://www.my.com/tu.jpg 這個請求是從 http://www.my.com 這個鏈接過來的。blocked:允許不是http://開頭的,不帶協議的請求訪問資源; *.my.com:只允許來自指定域名的請求訪問資源,如 http://www.my.comif語句:如果鏈接的來源域名不在valid_referers所列出的列表中,$invalid_referer為true,則執行后面的操作。
盜鏈網站主機(192.168.66.20 www.qyd.com)
[root@localhost ~]# yum install httpd -y 安裝apache服務
[root@localhost ~]# cd /var/www/html
[root@localhost html]# ls
[root@localhost html]# vim index.html
---------------------------------------------
<html>
<body>
<h1>是誰在盜鏈</h1>
<img src="http://www.my.com/tu.jpg"/> #圖片鏈接地址通過瀏覽器訪問http://www.my.com 所得圖片地址
</body>
</html>
設置域名映射
[root@localhost ~]# vim /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.66.10 www.my.com
192.168.66.20 www.qyd.com
使用盜鏈主機訪問網頁