IP 地址和域名一起显示在我的网络服务器上

IP 地址和域名一起显示在我的网络服务器上

最近我安装了 VESTACP 和 nginx,添加了域名,一切都很好,我可以通过域名访问我的网站,但当我从服务器输入 IP 地址时(http://11.11.11.11) 我可以访问我的网站,有什么解决方案可以避免显示我的 IP 地址吗?

感谢你们

这是我的 nginx conf 文件:

    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*;
}

Apache 配置文件:

<VirtualHost 11.11.3.171:8080>

    ServerName example.com
    ServerAlias www.example.com
    ServerAdmin [email protected]
    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>

答案1

作为域名系统只是一个将域名解析为 IP 地址的协议,你不能真正隐藏你的地址。

但是您可以使用 nginx 仅使用适当的名称来回答请求。

在您的 nginx.conf (或 sites-config)中检查listenserver_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,返回“无响应”,一个特殊的nginx 非标准立即关闭连接。

相关内容