配置Nginx防止直接用IP訪問Web服務器
看了很多Nginx的配置,好像都忽略了ip直接訪問Web的問題,這樣理論上不利于SEO優化,所以我們希望可以避免直接用IP訪問網站,而是域名訪問,具體怎么做呢,看下面。
官方文檔中提供的方法:
If you do not want to process requests with undefined "Host" header lines, you may define a default server that just drops the requests:
server {
listen 80 default_server;
server_name _;
return 444;
} 說白了就是只要是訪客用ip訪問就直接重置444錯誤。但是這樣好像又不太友好,如果能直接給跳轉到該web server的網址就好了。配置如下:
server {
listen 80 default_server;
server_name _;
rewrite ^ http://www.domain.com$request_uri?;
} 這樣還是有一點問題,某些特別的地址,我需要用ip訪問,其他的都禁止,如何配置呢?比如說我想讓監控寶直接用ip訪問我的機器的nginx狀態信息,其他的用ip訪問的所有請求都跳轉到域名上。
server {
listen 80 default_server;
server_name _;
location /xxxxx{
stub_status on;
access_log off;
}
location /{
rewrite ^ http://www.domain.com$request_uri?;
}
} 這樣就實現了我們想要的功能了。
本文由用戶 gxfw 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!