在生產環境中Nginx有很多安全方案,我在為生產環境部署中得到很多經驗,收集到的一些常用配置,簡單記錄一下。
安裝Nginx
正常安全Nginx大家應該都會,但是各位要知道在安全要求很高的生產環境中,是無網絡安裝的,(當然有些有內網源就簡單很多了),所以要自己上傳文件上去安裝,缺什么依賴沒法用命令安裝像是yum install或者apt-get install是無法使用的,這里簡單說下,等有空再詳細說下無網絡安裝,這里簡單說下。
下載編譯需要的庫源碼
安裝順序編譯安裝以下庫源碼即可安裝Nginx
- openssl
- pcre
- zlib
- Nginx
注意Nginx安裝的時候配置下需要的庫免得到時候重新編譯安裝
cd nginx-1.21.6
./configure --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module --with-stream
make
make install
這樣Nginx就算是安裝好了 默認安裝路徑在/usr/local/nginx
隱藏版本號
正常Nginx默認配置是會顯示版本號的信息的如下

只需要在Nginx配置文件中(如nginx.conf)的http{}加入以下參數即可
#隱藏版本號
server_tokens off;
然后顯示就是這樣的

完全不顯示Nginx
這個需要修改Nginx源碼來實現,具體可以google搜下
防止被嵌套iframe
在location /下加入以下屬性即可
# 拒絕IFrame嵌套
add_header X-Frame-Options SAMEORIGIN;
限制ip訪問
同樣在location /下加入以下屬性即可
# 限制IP訪問
allow 192.168.1.0/24;
allow 這里填IP;
deny all;
防盜連
這個是這次部署中了解到的技術,之前還真不知道有這功能 說白了就是防止別的ip或者域名訪問靜態資源,比如壁紙,總不能部署的壁紙被別人拿去免費當圖床吧?
在http{}下加入如下配置
# 防盜連
location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ {
root html;
valid_referers none blocked rakers.top; # 這里填寫允許的IP或域名
if ($invalid_referer) {
rewrite ^/ http://127.0.0.1/; #這里填資源地址ip或域名
#return 404;
}
}
版權聲明:本文為「誠哥博客」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:
https://www.chengzz.com/497.html