乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      在nginx中配置如何防止直接用ip訪問服務(wù)器web server及server

       shopnc 2017-08-07

      看了很多nginx的配置,好像都忽略了ip直接訪問web的問題,不利于SEO優(yōu)化,所以我們希望可以避免直接用IP訪問網(wǎng)站,而是域名訪問,具體怎么做呢,看下面。

      官方文檔中提供的方法: 

      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錯(cuò)誤。

      但是這樣好像又不太友好,如果能直接給跳轉(zhuǎn)到該web server的網(wǎng)址就好了。

      配置如下:

       

      server {
      listen 80 default_server;
      server_name _;
      rewrite ^ http://www.$request_uri?;
      }

       

      這樣還是有一點(diǎn)問題,某些特別的地址,我需要用ip訪問,其他的都禁止,如何配置呢?

      比如說我想讓監(jiān)控寶直接用ip訪問我的機(jī)器的nginx狀態(tài)信息,其他的用ip訪問的所有請(qǐng)求都跳轉(zhuǎn)到域名上。

       

      server {
      listen 80 default_server;
      server_name _;
              location /xxxxx{
                  stub_status on;
                  access_log  off;
              }
              location /{
                  rewrite ^ http://www.$request_uri?;
              }
      }

      這樣就實(shí)現(xiàn)了我們想要的功能了。

      另外,在這里說一下server_name。

      server_name 是可以使用正則表達(dá)式的,這個(gè)功能因該說相當(dāng)實(shí)用。

      Nginx中的server_name指令主要用于配置基于名稱的虛擬主機(jī),server_name指令在接到請(qǐng)求后的匹配順序分別為:

      1、準(zhǔn)確的server_name匹配,例如:

       

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

       

       

      2、以*通配符開始的字符串:

      server {
           listen       80;
           server_name  *.;
      ... }

      3、以*通配符結(jié)束的字符串:

      server {
           listen       80;
           server_name  www.*;
           ...
      }
      

      4、匹配正則表達(dá)式:

      server {
           listen       80;
           server_name  ~^(?.+)\.domain\.com$;
      ... }
      nginx將按照1,2,3,4的順序?qū)erver name進(jìn)行匹配,只有有一項(xiàng)匹配以后就會(huì)停止搜索,所以我們?cè)谑褂眠@個(gè)指令的時(shí)候一定要分清楚它的匹配順序(類似于location指令)。
      server_name指令一項(xiàng)很實(shí)用的功能便是可以在使用正則表達(dá)式的捕獲功能,這樣可以盡量精簡(jiǎn)配置文件,畢竟太長(zhǎng)的配置文件日常維護(hù)也很不方便。下面是2個(gè)具體的應(yīng)用:
      1、在一個(gè)server塊中配置多個(gè)站點(diǎn):
      server
         {
           listen       80;
           server_name  ~^(www\.)?(.+)$;
           index index.php index.html;
           root  /data/wwwsite/$2;
         }
      

      站點(diǎn)的主目錄應(yīng)該類似于這樣的結(jié)構(gòu):

      /data/wwwsite/
      /data/wwwsite/nginx.org
      /data/wwwsite/baidu.com
      /data/wwwsite/google.com 

       

      這樣就可以只使用一個(gè)server塊來完成多個(gè)站點(diǎn)的配置。

      2、在一個(gè)server塊中為一個(gè)站點(diǎn)配置多個(gè)二級(jí)域名。

      實(shí)際網(wǎng)站目錄結(jié)構(gòu)中我們通常會(huì)為站點(diǎn)的二級(jí)域名獨(dú)立創(chuàng)建一個(gè)目錄,同樣我們可以使用正則的捕獲來實(shí)現(xiàn)在一個(gè)server塊中配置多個(gè)二級(jí)域名:

       

      server
         {
           listen       80;
           server_name  ~^(.+)?\.domain\.com$;
      index index.html; if ($host = ){
      rewrite ^ http://www. permanent;
      } root /data/wwwsite//$1/;
      }

      站點(diǎn)的目錄結(jié)構(gòu)應(yīng)該如下:

      /data/wwwsite//www/
      /data/wwwsite/domain
      .com/nginx/

      這樣訪問www.時(shí)root目錄為/data/wwwsite//www/,nginx.時(shí)為/data/wwwsite//nginx/,以此類推。

      后面if語句的作用是將的方位重定向到www.,這樣既解決了網(wǎng)站的主目錄訪問,又可以增加seo中對(duì)www.的域名權(quán)重。

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多