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;
}
}
あなたの説明によると、あなたが所有していない別のドメイン名があなたのIPアドレスに設定されているため、そのドメインへのWeb訪問者はあなたのサイトを見ることができます。
これを修正するには、nginxに付属しているデフォルトのnginx server
ブロック(またはこの場合、デフォルトのserver
ブロックのUbuntuのカスタムバージョン)を復元する必要があります。このデフォルトのserver
ブロックは、デフォルトでは何も提供しません。そこに到達するすべてのものは、Debianの「nginxへようこそ」ページを取得します。自分のサイト用に個別のserver
ブロックが必要です。
@ MichaelHampton♦の回答を参照してください。これが私がそれを修正する方法です。
デフォルトのサーバーブロック(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を使用しています)。ドメインは正常に機能します。