Apache-2.2

IP 地址與域一起顯示在我的 Web 伺服器上

  • November 13, 2019

最近我安裝了 VESTACP 和 nginx,添加了域名,一切都很好,我可以使用域訪問我的網站,而且當我從伺服器(http://11.11.11.11)輸入 IP 地址時,我可以訪問我的網站,所以有什麼避免顯示我的 IP 地址的解決方案?

謝謝你們

這是我的 nginx 配置文件:

   listen   11.11.3.171:80;
   server_name example.com www.example.com;
   error_log  /var/log/apache2/domains/example.com.error.log error;

   location / {
       proxy_pass      http://11.11.3.171:8080;
       location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|tif|tiff|css|js|htm|html|ttf|otf|webp|woff|txt|csv|rtf|doc|docx|xls|xlsx|ppt|pptx|odf|odp|ods|odt|pdf|psd|ai|eot|eps|ps|zip|tar|tgz|gz|rar|bz2|7z|aac|m4a|mp3|mp4|ogg|wav|wma|3gp|avi|flv|m4v|mkv|mov|mpeg|mpg|wmv|exe|iso|dmg|swf)$ {
           root           /home/admin/web/example.com/public_html;
           access_log     /var/log/apache2/domains/example.com.log combined;
           access_log     /var/log/apache2/domains/example.com.bytes bytes;
           expires        max;
           try_files      $uri @fallback;
       }
   }

   location /error/ {
       alias   /home/admin/web/example.com/document_errors/;
   }

   location @fallback {
       proxy_pass      http://11.11.3.171:8080;
   }

   location ~ /\.ht    {return 404;}
   location ~ /\.svn/  {return 404;}
   location ~ /\.git/  {return 404;}
   location ~ /\.hg/   {return 404;}
   location ~ /\.bzr/  {return 404;}

   include /home/admin/conf/web/nginx.example.com.conf*;
}

阿帕奇配置文件:

<VirtualHost 11.11.3.171:8080>

   ServerName example.com
   ServerAlias www.example.com
   ServerAdmin info@example.com
   DocumentRoot /home/admin/web/example.com/public_html
   ScriptAlias /cgi-bin/ /home/admin/web/example.com/cgi-bin/
   Alias /vstats/ /home/admin/web/example.com/stats/
   Alias /error/ /home/admin/web/example.com/document_errors/
   #SuexecUserGroup admin admin
   CustomLog /var/log/apache2/domains/example.com.bytes bytes
   CustomLog /var/log/apache2/domains/example.com.log combined
   ErrorLog /var/log/apache2/domains/example.com.error.log
   <Directory /home/admin/web/example.com/public_html>
       AllowOverride All
       Options +Includes -Indexes +ExecCGI
       php_admin_value open_basedir /home/admin/web/example.com/public_html:/home/admin/tmp
       php_admin_value upload_tmp_dir /home/admin/tmp
       php_admin_value session.save_path /home/admin/tmp
   </Directory>
   <Directory /home/admin/web/example.com/stats>
       AllowOverride All
   </Directory>

   <IfModule mod_ruid2.c>
       RMode config
       RUidGid admin admin
       RGroups www-data
   </IfModule>
   <IfModule itk.c>
       AssignUserID admin admin
   </IfModule>

   IncludeOptional /home/admin/conf/web/apache2.example.com.conf*

</VirtualHost>

由於域名系統只是將(域名)名稱解析為其 IP 地址的協議,因此您無法真正隱藏您的地址。

但是您可以使用 nginx 僅使用適當的名稱來回答請求。

在您的 nginx.conf(或站點配置)中檢查listenandserver_name指令:

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

在 Nginx 配置文件中,您可以擁有多個伺服器“{}”塊。傳入的請求與server_name指令匹配 - 以自上而下的方式。

在多個伺服器塊的情況下,如果請求是針對一個不存在的域,那麼它將始終由第一個伺服器塊處理。

如果您想阻止來自任何其他(又名“未被現有塊擷取”)地址的請求,只需添加以下伺服器塊來擷取它們:

server {
   listen 80 default_server;
   server_name _;
   return 444;
}

設置server_name_意味著“預設”或“匹配所有”。響應程式碼444,返回為“NO RESPONSE”,這是一個特殊的nginx 非標準,會立即關閉連接。

引用自:https://serverfault.com/questions/991349