nginx只允許域名訪問,禁止ip訪問


 

網上一搜一大堆配置文件。大部分都是對的。下面我說下我遇到的問題。先給上對的配置圖

無非就是添加虛擬空主機頭,然后nginx識別到返回固定值403-404或者500更或者是自定義的錯誤頁

 

[root@localhost nginx]# find / -name nginx.conf
/etc/nginx/nginx.conf
[root@localhost nginx]# vi /etc/nginx/nginx.conf    編輯這個文件頁。nginx加載的是這個配置。

 

編輯這個文件一定要把新添加的內容放在前面,因為配置是從上往下匹配規則的。

   server {
      listen 80 default;
       server_name _;
#       return 403;  ##這里可以選擇403或者404-500甚至自定義網頁
         rewrite ^(.*) http://www.xxxx.com;  ###我這個是為了避免我的網站ip訪問的流量流失,做了重定向至自己的域名
    }

 

然后重啟nginx生效

systemctl restart nginx.service

 

注意我的這個nginx.conf文件是沒有域名那些指定的,我最下面這句話就是nginx.conf加載指定配置文件。具體可以看我連接:https://www.cnblogs.com/Crazy-Liu/p/10879740.html
新添加的這個代碼一定要放在其他配置文件之前。所以我之前放在nginx.conf上

 

 

 

現在我說說我遇到的問題。一開始我就這么設置結果各種問題,要么是域名ip都打不開或者就是域名能打開ip打不開。這種情況一定是配置文件沖突了,不用想!!

 

我錯的是在這這個問題上沖突了。我的nginx.conf已經配置是加載/etc/nginx/conf.d/下的所有.conf文件,而恰恰我這個conf.d/這個目錄下不止一個.conf文件,一個是備份的舊文件,而且我的這個舊文件里面的虛擬機主機頭是ip的。下面貼出沖突的錯誤配置代碼:

server{
listen             80;                    #監聽的端口號
server_name     xxx.xxx.xxx.xxx;    #您的域名     
      location / {
          root /home/www/xxx.com;        #站點的路徑
          index index.php index.html index.htm;
          if (!-e $request_filename) {
              rewrite ^(.*)$ /index.php$1 last;
          }
      }
location ~ ^.+\.php {
          root /home/www/xxx.com;        #站點的路徑
          fastcgi_pass 127.0.0.1:9000;    #根據自己的 php-fpm 配置填寫
          fastcgi_index index.php;
          ###配置支持pathinfo
          fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          include fastcgi_params;
      }
    }

因為我是設置多域名了所以把這個原本的配置文件備份了,結果nginx.conf是加載我指定目錄下的所有.conf文件,把備份的舊的文件也讀取了。而舊文件server_name xxx.xxx.xxx.xxx; 寫的是ip所以導致沖突沒生效。

 

所以啊,遇上這種配置好了結果各種問題的要先檢查下自己的配置。有問題請留言評論!

 


免責聲明!

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



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