Nginx 服务优化与防盗链
文章目錄
- 一、隱藏版本號
- 1.1 隱藏版本號的操作步驟(理論)
- 1.2 隱藏版本號的實驗具體步驟(實操)
- 1.3 修改用戶與組
- 二、緩存時間
- 2.1緩存時間的操作步驟(理論)
- 2.2 緩存時間的實驗具體步驟(實操)
- 三、日志切割
- 3.1 日志切割的操作步驟(理論)
- Filename: fenge.sh
- 3.2 日志切割的實驗具體步驟(實操)
- 四、連接超時和更改進程數
- 4.1 連接超時的操作步驟(理論)
- 4.2 連接超時實驗具體步驟(實操)
- 4.3 更改進程數的操作步驟(理論)
- 4.4 更改進程數的操作步驟(理論)
- 五、配置網頁壓縮
- 5.1 配置網頁壓縮的操作步驟(理論)
- 5.2 配置網頁壓縮的實驗具體步驟(實操)
- 六、配置防盜鏈
- 6.1 配置防盜鏈(理論)
- 6.2 配置防盜鏈(實操)
一、隱藏版本號
1.1 隱藏版本號的操作步驟(理論)
可以使用 Fiddler 工具抓取數據包,查看 Nginx版本,
也可以在 CentOS 中使用命令 curl -I http://192.168.80.200 顯示響應報文首部信息。
curl -I http://192.168.80.200
方法一:修改配置文件方式
vim /usr/local/nginx/conf/nginx.conf
```handlebars
http {
include mime.types;
default_type application/octet-stream;
server_tokens off; #添加,關閉版本號
…
}
systemctl restart nginx
curl -I http://192.168.80.10
方法二:修改源碼文件,重新編譯安裝
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 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.80.200
1.2 隱藏版本號的實驗具體步驟(實操)
第一步:顯示響應報文首部信息
第二步:修改主配置文件
第三步:再次看出版本號是否被隱藏
在瀏覽器中進行查看
1.3 修改用戶與組
vim /usr/local/nginx/conf/nginx.conf
user nginx nginx; #取消注釋,修改用戶為 nginx ,組為 nginx
systemctl restart nginx
ps aux | grep nginx
主進程由root創建,子進程由nginx創建
修改主配置文件
第二步:重啟服務進行查看
二、緩存時間
2.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)$ {
root html;
expires 1d;
}
…
}
}
systemctl restart nginx
在Linux系統中,打開火狐瀏覽器,右擊點查看元素
選擇 網絡 —> 選擇 HTML、WS、其他
訪問 http://192.168.80.10 ,雙擊200響應消息查看響應頭中包含 Cahce-Control:max-age=86400 表示緩存時間是 86400 秒。也就是緩存一天的時間,一天之內瀏覽器訪問這個頁面,都是用緩存中的數據,而不需要向 Nginx 服務器重新發出請求,減少了服務器的使用帶寬。
2.2 緩存時間的實驗具體步驟(實操)
第一步:修改主配置文件
第二步:當如圖片并對網頁文件進行編輯
第三步:檢查配置并重啟服務
第四步:瀏覽器中進行查看
三、日志切割
3.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 logspath/kgc.com?access.log?{logs_path}/kgc.com-access.log-logsp?ath/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的區別。
3.2 日志切割的實驗具體步驟(實操)
第一步:編寫腳本
第二步:執行腳本,查看日志是否生成
四、連接超時和更改進程數
4.1 連接超時的操作步驟(理論)
vim /usr/local/nginx/conf/nginx.conf
http {
…
keepalive_timeout 65 180;
client_header_timeout 80;
client_body_timeout 80;
…
}
systemctl restart nginx
4.2 連接超時實驗具體步驟(實操)
第一步:修改主配置文件
第二步:檢查配置和重啟服務
4.3 更改進程數的操作步驟(理論)
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
4.4 更改進程數的操作步驟(理論)
第一步:查看cpu核數和nginx主進程中包含幾個子進程
第二步:修改主配置參數
第三步:重啟服務并查看
五、配置網頁壓縮
5.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
先將1.jpg文件傳到/usr/local/nginx/html目錄下
vim index.html
…
#網頁中插入圖片
systemctl restart nginx
測試:
在Linux系統中,打開火狐瀏覽器,右擊點查看元素
選擇 網絡 —> 選擇 HTML、WS、其他
訪問 http://192.168.80.10 ,雙擊200響應消息查看響應頭中包含 Content-Encoding: gzip
5.2 配置網頁壓縮的實驗具體步驟(實操)
第一步:修改主配置文件
第二步:修改網頁顯示內容
第三步:重啟服務瀏覽器沖測試
瀏覽器中測試
六、配置防盜鏈
6.1 配置防盜鏈(理論)
vim /usr/local/nginx/conf/nginx.conf
http {
…
server {
…
location ~*.(jpg|gif|swf)$ {
valid_referers *.kgc.com kgc.com;
if ( $invalid_referer ) {
rewrite ^/ http://www.kgc.com/3.png;
}
}
…
}
}
~* .(jpg|gif|swf)$ :這段正則表達式表示匹配不區分大小寫,以.jpg 或.gif 或.swf 結尾的文件;
valid_referers :設置信任的網站,可以正常使用圖片;
后面的網址或者域名 :referer 中包含相關字符串的網址;
if語句:如果鏈接的來源域名不在valid_referers所列出的列表中,$invalid_referer為1,則執行后面的操作,即進行重寫或返回 403 頁面。
網頁準備:
Web源主機(192.168.80.200)配置:
cd /usr/local/nginx/html
將game.jpg、error.png文件傳到/usr/local/nginx/html目錄下
vim index.html
echo “192.168.153.20 www.kgc.com” >> /etc/hosts
盜鏈網站主機(192.168.80.111):
cd /var/www/html
vim index.html
…
echo “192.168.153.20 www.kgc.com” >> /etc/hosts
echo “192.168.153.30 www.clj.com” >> /etc/hosts
在盜圖網站主機上進行瀏覽器驗證
http://www.clj.com
6.2 配置防盜鏈(實操)
第一步:修改主配置文件
第二步:源主機網頁準備工作
第三步:源主機臨時添加域名和IP的映射關系
第四步:盜鏈主機網頁準備
第五步:盜鏈主機臨時添加域名和IP的映射關系
第六步:瀏覽器中驗證
訪問源主機網頁測試結果為可以正常訪問到圖片
訪問盜鏈主機網頁測試結果為顯示盜鏈圖片
總結
以上是生活随笔為你收集整理的Nginx 服务优化与防盗链的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Shell概述
- 下一篇: Tomcat服务部署和优化