nginx下只能通過域名,禁止使用ip訪問


今天來了一個需求,ip訪問返回500,域名訪問正常,只需在nginx.conf中添加

server { 
    listen 80 default;  #default 必須加的
    return 500; 
} 

也可以把這些流量收集起來,導入到自己的網站,只要做以下跳轉設置就可以:

server { 
    listen 80 default; 
    rewrite ^(.*) http://www.xxx.com permanent; 
} 

按照如上設置后,確實不能通過IP訪問服務器了,但是在應該用中出現當server_name后跟多個域名時,其中一個域名怎么都無法訪問:
設置如下:
沒更改之前,通過server_name 中的www.xxx.com linuxidc.com均可訪問服務器,加入禁止IP訪問的設置后,通過linuxidc.com無法訪問服務器了,www.xxx.com可以訪問
用 nginx -t 檢測配置文件會提示warning:
最后通過在listen 80 default;后再加server_name _;解決,形式如下:
#禁止IP訪問

server{ 
    listen 80 default; 
    server_name _; 
    return 500; 
} 

或者

server { 
    listen 80 dufault; 
    server_name _; 
    rewrite ^(.*) http://www.xxx.com permanent; 
} 

 最后重啟nginx看效果如下


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM