我发现一个未知域名www.aaa.com
提供与我的网站完全相同的内容(html,js,css,任何资产)myname.me
:。
例如,API 也www.aaa.com/api/user
获得与 相同的响应myname.me/api/user
。
我如何阻止该域名提供我的服务?
这是怎么做到的?直接重定向到我的域名?代理?DNS?
我使用 VPS 和 nginx,这是我的 nginx 配置,这是重定向到 https:
server {
if ($host = example.me) {
return 301 https://$host$request_uri;
}
listen 80 default_server;
listen [::]:80 default_server;
server_name example.me;
return 404;
}
这是从 https 请求到我在端口 3000 上运行的应用程序的代理:
server {
root /var/www/html/example
server_tokens off;
index index.html index.htm index.nginx-debian.html;
server_name example.me;
# add_header Cache-Control no-cache;
location / {
# First attempt to serve request as file, then as directory, then fall back to displaying a 404.
# try_files $uri $uri/ =404;
proxy_pass http://198.51.100.1:3000$request_uri;
}
}
答案1
您的描述表明,另一个不属于您的域名已设置为您的 IP 地址,因此该域名的网络访问者会看到您的网站。
要解决此问题,您需要恢复server
nginx 附带的默认 nginx 块(或在本例中为 Ubuntu 的默认块自定义版本server
)。默认情况下,此默认server
块不提供任何服务;到达它的所有内容都会显示 Debian 的“欢迎使用 nginx”页面。您应该server
为自己的站点设置单独的块。
答案2
请参阅@Michael Hampton♦ 的回答,下面是我修复它的方法。
添加默认服务器块(ssl),需要包含 ssl 证书路径才能使其工作,请参阅这里。
server {
listen 443 default_server;
listen [::]:443 default_server;
ssl_certificate /path/to/your/certificate
ssl_certificate_key /path/to/your/certificate_key
server_name _;
return 444;
}
现在未知域名没有返回任何内容(但仍在使用我的 ssl),并且我的域名正常工作。