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