目錄
一、配置Nginx隱藏版本相關(guān)信息
1.隱藏版本號
2.修改版本號及相關(guān)信息
?編輯?編輯
二、修改Nginx運行時的屬主和屬組
三、配置Nginx網(wǎng)頁緩存時間
四、配置Nginx站點日志分割
五、設(shè)置Nginx長連接及超時時間
六、配置Nginx網(wǎng)頁壓縮
七、配置Nginx防盜鏈
1.模擬盜鏈
2.配置防盜鏈并測試
一、配置Nginx隱藏版本相關(guān)信息
1.隱藏版本號
修改 nginx.conf 文件,在http塊中添加字段后,重載服務(wù)
獲取報文信息并查看(瀏覽器查看或使用命令)
2.修改版本號及相關(guān)信息
如果做了上一步在nginx.conf 中添加了 server_tokens off 需要注釋掉??!
修改源碼信息(修改完需要重新編譯安裝)
(修改的只是顯示的信息,并不是真正修改版本和信息)
重新編譯安裝
?
cd /opt/ngnginx-1.12.0/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
?
make && make install
?
systemctl restart nginx.service
?
獲取報文信息并查看
二、修改Nginx運行時的屬主和屬組
修改 nginx.conf 文件
查看nginx運行用戶發(fā)生改變(默認(rèn)為nobody)
三、配置Nginx網(wǎng)頁緩存時間
當(dāng)Nginx將網(wǎng)頁數(shù)據(jù)返回給客戶端后,可設(shè)置緩存的時間,以方便在日后進(jìn)行相同內(nèi)容的請求時直接返回,避免重復(fù)請求,加快了訪問速度;
一般針對靜態(tài)網(wǎng)頁設(shè)置,對動態(tài)網(wǎng)頁不設(shè)置緩存時間。
修改 nginx.conf 文件 ,在http塊 或server塊 或location塊中添加 expires 參數(shù)
?# ~ 代表使用正則表達(dá)式,后面匹配的是以|分割的字符結(jié)尾的文件 location ~ \.(gif|jpg|jpeg|png|mp4|mp3|txt)$ { ? ? ? ? ? ? ? ? root ? html; ? ? ? ? ? expires 1d; ? ?#代表緩存時間為1天 }
添加圖片,訪問測試
查看報文信息,86400代表1天,設(shè)置生效
?
?
四、配置Nginx站點日志分割
編寫腳本(因為放在后一天凌晨執(zhí)行,所以獲取前一天的日期)
執(zhí)行并測試
加入計劃任務(wù)
五、設(shè)置Nginx長連接及超時時間
keepalive_timeout
指定KeepAlive的超時時間(timeout)。指定每個tcp連接最多可以保持多長時間,服務(wù)器將會在這個時間后關(guān)閉連接。
Nginx的默認(rèn)值是65秒,有些瀏覽器最多只保持60秒,所以可以設(shè)定為 60秒。若將它設(shè)置為0,就禁止了keepalive連接。 ? 第二個參數(shù)(可選的)指定了在響應(yīng)頭keepalive_timeout 中的time值。這個頭能夠讓一些瀏覽器主動關(guān)閉連接,這樣服務(wù)器就不必去關(guān)閉連接了。沒有這個參數(shù),Nginx不會發(fā)送Keep-Alive響應(yīng)頭。
client_header_timeout 客戶端向服務(wù)端發(fā)送一個完整的 request header的超時時間。如果客戶端在指定時間內(nèi)沒有發(fā)送一個完整的 reqpuest header,Nginx 返回HTTP 408(RequestTimed out ) 。
client_body_timeout 指定客戶端與服務(wù)端建立連接后發(fā)送request body的超時時間。如果客戶端在指定時間內(nèi)沒有發(fā)送任何內(nèi)容,Nginx返回 HTT 408(Request Timed out) 。
修改 nginx.conf 文件
檢查語法并重啟服務(wù)
訪問并查看請求報文(保持連接,且瀏覽器超時時間為50s)
六、配置Nginx網(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)化。
gzip on; | 取消注釋,開啟gzip壓縮功能 |
---|---|
gzip_min_length 1k; | 最小壓縮文件大小 1k |
gzip_buffers 4 64k; | 壓縮緩沖區(qū),大小為4個64k緩沖區(qū) |
gzip_http_version 1.1; | 壓縮版本(默認(rèn)1.1,前端如果是squid2.5請使用1.0) |
gzip_comp_level 6; | 壓縮比率(1~9等級) |
gzip_vary on; | 支持前端緩存服務(wù)器存儲壓縮頁面 |
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; | 壓縮類型,表示哪些網(wǎng)頁文檔啟用壓縮功能 |
檢查語法并重啟服務(wù)
準(zhǔn)備頁面并訪問測試
?
七、配置Nginx防盜鏈
1.模擬盜鏈
192.168.116.10為www.abc.com; 192.168.116.20為www.def.com;
www.def.com模擬盜取www.abc.com的網(wǎng)頁圖片;
使用windows主機訪問兩個網(wǎng)站。
配置域名解析(為了方便這里修改/etc/hosts文件)
在www.def.com的首頁添加圖片
?
在www.abc.com的首頁盜取此站點圖片
?
2.配置防盜鏈并測試
修改 nginx.conf 文件,如果有緩存配置,需要在緩存配置之前加上
location ~* .(gif|jpg|jpeg|png|swf)$ { ... }
~代表使用正則表達(dá)式 ,*代表不區(qū)分大小寫(location選項中不能包含防盜鏈圖片的格式)
vaild_referers ...
代表設(shè)置受信任的網(wǎng)站,匹配到的將不會做防盜鏈。
none
允許沒有http_refer的請求訪問資源(根據(jù)Referer的定義,它的作用是指示一個請求是從哪里鏈接過來的,如果直接在瀏覽器的地址欄中輸入一個資源的URL地址,那么這種請求是不會包含Referer字段的),如http://www.def.com/error.webp。 blocked
允許不是http://開頭的,不帶協(xié)議的請求訪問資源。
$invalid_referer
就是vaild_referers指定的站點范圍取反,即非信任站點
if判斷當(dāng)?shù)刂窛M足$invalid_referer的范圍,則指定條件中的語句,
即 rewrite ^/ http://www.def.com/error.webp; 重寫訪問的url為指定url。
在www.def.com下上傳防盜鏈的圖片
再次訪問測試www.abc.com,變成了指定的防盜鏈圖片文章來源:http://www.zghlxwxcb.cn/news/detail-507672.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-507672.html
到了這里,關(guān)于Nginx服務(wù)性能和安全優(yōu)化的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!