Nginx服务优化与防盗链
目錄
一、隱藏nginx版本號
1.1查看版本號
?1.2隱藏版本信息
二、修改用戶與組
三、緩存時間?
四、日志分割
五、連接超時?
六、更改進程數
七、網頁壓縮?
?八、配置防盜鏈
8.1 網頁準備
?8.2 配置防盜
一、隱藏nginx版本號
1.1查看版本號
方法一:curl命令
可以在 CentOS 中使用命令?curl -I http://192.168.59.118?顯示響應報文首部信息。
curl -I http://192.168.130.10方法二:在網頁中查看?
1. #切換至html目錄,拖一個圖片進去
cd /usr/local/nginx/html
?
2. #在網頁中查看
http://192.168.130.10/game.jpg
?1.2隱藏版本信息
方法一:修改配置文件
1.#修改配置文件 vim /usr/local/nginx/conf/nginx.conf2.#重啟nginx systemctl restart nginx3.#查看版本是否被隱藏 curl -I http://192.168.130.10 ```handlebars http {include mime.types;default_type application/octet-stream;server_tokens off; #添加,關閉版本號...... }方法二: 修改源碼文件,重新編譯安裝?
1. #切換至nginx安裝包所在目錄 cd /opt/ 2. #停止nginx服務 systemctl stop nginx.service 3. #切換至安裝目錄 cd nginx-1.12.0/ 4. #切換至內核目錄 cd src/core/ 5. #進入配置文件 vim nginx.h ? #define NGINX_VERSION "yxp" #define NGINX_VER "yyy/" NGINX_VERSION ? 6. #切換至文件目錄 cd ../../ ? 7. #編譯 ./configure \ --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx \ --with-http_stub_status_module ? 8. #安裝 make && make install -j2 ? 9. #將配置文件下的之前關閉版本信息開啟 vim /usr/local/nginx/conf/nginx.conf server_tokens on; ? 10. #重啟nginx systemctl restart nginx ? 11. #查看版本信息 curl -I http://192.168.130.10 ???
二、修改用戶與組
1. #修改配置文件 vim /usr/local/nginx/conf/nginx.conf ? user xin xin; #取消注釋,修改用戶為 xin ,組為 xin ? 2. #創建非登錄用戶 useradd -s /sbin/nologin xin ? 3. #重啟服務 systemctl restart nginx ? 4. #查看是否修改成功 ps aux | grep nginx三、緩存時間?
當nginx將網頁數據返回給客戶端后,可設置緩存時間,以方便在日后進行相同內容的請求時直接返回,避免重復請求,加快了訪問速度一般針對靜態網頁設置,對動態網頁不設置緩存時間。
1. #修改配置文件 vim /usr/local/nginx/conf/nginx.conf#添加以下內容location ~ \.(jpg|png|bmp|gif)$ {root html;expires 1d;} ? ? 2. #查看是否有語法錯誤 nginx -t ? 3. #重啟服務 systemctl restart nginx.service ? 4.#在網頁中查看服務 http://192.168.130.10/game.png ?Cahce-Control:max-age=86400 表示緩存時間是 86400 秒。也就是緩存一天的時間,一天之內瀏覽器訪問這個頁面,都是用緩存中的數據,而不需要向 Nginx 服務器重新發出請求,減少了服務器的使用帶寬。?
四、日志分割
隨著Nginx運行時間的增加,產生的日志也會逐漸增加,為了方便掌握Nginx的運行狀態,需要時刻關注Nginx日志文件。太大的日志文件對監控是一個大災難,不便于分析排查,需要定期的進行日志文件的切割。
1. #寫腳本 vim /usr/local/nginx/nginx_log.sh ? #!/bin/bash #this is for divide nginx log d=$(date +%F -d -1day) #顯示前一天的時間 path="/var/log/nginx" pid="/usr/local/nginx/logs/nginx.pid" ? [ -d $path ] ||mkdir -p $path #創建日志文件目錄 mv /usr/local/nginx/logs/access.log ${path}/www.yxp.com-$d #移動并重命名日志文件 kill -USR1 $(cat $pid) #重建新日志文件 find $path -mtime +30 -delete #刪除30天之前的日志文件 ? 2. #賦予權限 chmod +x /usr/local/nginx/nginx_log.sh ? 3. #計劃任務 [root@localhost nginx]#crontab -e ? 30 1 * * * /usr/local/nginx/nginx_log.sh五、連接超時?
HTTP服務有一個KeepAlive模式,它告訴web服務器在處理完一個請求后保持這個TCP連接的打開狀態若接收到來自同一客戶端的其他請求,服務端會利用這個被被關閉的連接,而不需要再次建立一個連接
KeepAlive在一段時間內保持打開狀態,它們會在這段時間內占用資源,占用過多就會影響服務器的性能
在企業網站中,為了避免同一個客戶長時間占用連接,造成資源浪費,可設置相應的連接超時參數,實現控制連接訪問時間。可以修改配置文件 nginx.conf,設置 keepalive_timeout超時
?
六、更改進程數
在高并發場景,需要啟動更多的Nginx進程以保證快速響應,以處理用戶的請求,避免造成阻塞
1. #統計cpu核數 cat /proc/cpuinfo |grep processor|wc -l 或 cat /proc/cpuinfo |grep -c processor ? 2. #查看目前有的核數 ps -aux |grep nginx ? ? 3. #修改 Nginx 的配置文件worker_processes 參數,一般設為 CPU 的個數或者核數,在高并發的情況下可設置為 CPU 個數或者核數的 2 倍,可以查看 CPU 的核數以確定參數。 vim /usr/local/nginx/conf/nginx.conf ? worker_processes 16; ? 4. #重啟服務并查看 systemctl restart nginx.service ps -aux |grep nginx ?統計cpu核數
查看目前有的核數
?
七、網頁壓縮?
-
Nginx的ngx_http_gzip_module壓縮模塊提供對文件內容壓縮的功能
-
允許Nginx服務器將輸出內容在發送客戶端之前進行壓縮,以節約網站帶寬,提升用戶的訪問體驗,默認已經安裝可在配置文件中加入相應的壓縮功能參數對壓縮性能進行優化
?八、配置防盜鏈
-
在企業網站服務中,一般都要配置防盜鏈功能,以避免網站內容被非法盜用,造成經濟損失,也避免了不必要的帶寬浪費。
-
Nginx 的防盜鏈功能也非常強大,在默認情況下,只需要進行很簡單的配置,即可實現防盜鏈處理。
8.1 網頁準備
##盜鏈網站主機(192.168.130.10)網頁準備
1. #再開一臺centos服務器,安裝httpd
yum install -y httpd
?
2. #切換至/var/www/html
cd /var/www/html
vim index.html?
?
<html>
<body>
<h1>this is yxp
<img src="http://www.yxp.com/game.jpg"/>
</body>
</html>
3. #在Web源主機(192.168.130.20)添加域名
vim /etc/hosts
?
192.168.130.20 www.yxp.com
?
4. #在Web源主機(192.168.130.20)添加圖片
vim /usr/local/nginx/html/index.html?
?
<img src="game.png">
?
5. #在盜鏈網站主機(192.168..59.108)添加域名
192.168.130.20?www.yxp.com
192.168.130.10 www.dhc.com
?
?
6. #在盜鏈網站開啟服務,并在網頁中測試
systemctl start httpd
再開一臺centos服務器,安裝httpd
切換至/var/www/html
?在Web源主機(192.168.130.20)添加域名
?在Web源主機(192.168.130.20)添加圖片?
?在盜鏈網站主機(192.168.130.10)添加域名
?在盜鏈網站開啟服務,并在網頁中測試
?8.2 配置防盜鏈
1. #在Web源主機(192.168.59.118)
vim /usr/local/nginx/conf/nginx.conf
?
? ? ?location ~* \.(jpg|swf)$ {
? ? ? ? ? ? ? ? ? valid_referers none blocked *.yxp.com yxp.com;
? ? ? ? ? ? if ( $invalid_referer ) {
? ? ? ? ? ? ? ? ? ? ? ? ? ?rewrite ^/ http://www.yxp.com/error.png;
? ? ? ? ? ? ? ? ? ? ? ? ? ?}
}
? ? ? ??
?
2. #檢查語法是否有錯
nginx -t
?
3. #將盜圖圖片拖進去
cd /usr/local/nginx/html/
?
4. #重啟服務
systemctl restart nginx.service
?
5. #在網頁測試
源主機網頁: ?http://www.yxp.com/
盜鏈主機網頁: http://www.dhc.com/
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的Nginx服务优化与防盗链的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 漫谈悲观锁乐观锁
- 下一篇: 用于学术论文阅读外文学习的高效翻译工具—