詳解CentOS下Nginx如何禁止IP訪問_Linux

來源:互聯網
上載者:User

我們就先看看Nginx的預設虛擬機器主機在使用者通過IP訪問,或者通過未設定的網域名稱訪問(比如有人把他自己的網域名稱指向了你的ip)的時候生效最關鍵的一點是,在server的設定裡面添加這一行:

 listen 80 default; 

後面的default參數表示這個是預設虛擬機器主機。

Nginx 禁止IP訪問這個設定非常有用。

比如別人通過ip或者未知網域名稱訪問你的網站的時候,你希望禁止顯示任何有效內容,可以給他返回500.目前國內很多機房都要求網站主關閉空主機頭,防止未備案的網域名稱指向過來造成麻煩。

就可以這樣設定:

 server {   listen 80 default;   return 500;  } 

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

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

按照如上設定後,確實不能通過IP訪問伺服器了,但是在應該用中出現當server_name後跟多個網域名稱時,其中一個網域名稱怎麼都無法訪問

設定如下:

 server {   listen 80;   server_name www.abc.com abc.com  }

沒更改之前,通過server_name 中的www.abc.com abc.com均可訪問伺服器,加入Nginx 禁止IP訪問的設定後,通過abc.com無法訪問伺服器了,www.abc.com可以訪問,用 Nginx -t 檢測設定檔會提示warning:

 [warn]: conflicting server name “abc.com” on 0.0.0.0:80,  ignored  the configuration file /usr/local/webserver/Nginx/conf/  Nginx.conf syntax is ok  configuration file /usr/local/webserver/Nginx/conf/Nginx.  conf test is successful

最後通過在listen 80 default;後再加server_name _;解決

形式如下:

 #禁止IP訪問  server {   listen 80 default;   server_name _;   server_name www.abc.com abc.com   return 500;  } 

這樣,通過abc.com就能訪問伺服器了。

總結

好了,以上就是CentOS下Nginx禁止IP訪問的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的協助,如果有疑問大家可以留言交流,謝謝大家對雲棲社區的支援。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.