ホームページ >バックエンド開発 >PHPチュートリアル >Nginx は、Web サーバーにアクセスするための IP またはバインドされていないドメイン名の直接使用を禁止しています
今日は、IP 経由でのみサーバーにアクセスできるように Nginx を設定します。これは、他のユーザーが未登録のドメイン名を解析してサーバーが切断されるのを防ぐためです。インターネットソリューションから次の解決策を見つけました:
Nginx のデフォルトの仮想ホストは、ユーザーが IP 経由でアクセスするか、未設定のドメイン名経由でアクセスするときに有効になります (たとえば、誰かが自分のドメイン名をあなたの IP にポイントする)。設定に次の行を追加します:
listen 80default; # # の後のデフォルトパラメータは、これがデフォルトの仮想ホストであることを示します。 この設定は非常に便利です。たとえば、誰かが IP または未知のドメイン名を介してあなたの Web サイトにアクセスし、有効なコンテンツが表示されないようにしたい場合は、その人に 500 を返すことができます。
現在、中国の多くのコンピューター室では、Web サイトの所有者が空の電源をオフにする必要があります。ホストヘッダーを使用して、未登録のドメイン名がそれらを指すことを防ぎます。次のように設定できます:
server {
listen 80default;
return 500;
このトラフィックを収集して、独自の Web サイトにインポートすることもできます:
listen 80デフォルト;
書き換え ^(.*) http://www.linuxidc.com 永続;
}
=========================== === ===
上記のように設定した後、IP 経由でサーバーにアクセスできないことは事実ですが、server_name の後に複数のドメイン名が続く場合、いずれかのドメイン名にアクセスできなくなります:
server
{
listen 80;
server_name www.linuxidc.com linuxidc.com
変更前は、server_name に www.linuxidc.com および linuxidc.com を介してサーバーにアクセスできます。 禁止する設定を追加した後。 IP アクセスでは、linuxidc.com 経由でサーバーにアクセスできません。現在、www.linuxidc.com にアクセスできます
nginx -t を使用して構成ファイルを検出すると、警告が表示されます:
[warn]: 競合するサーバー名「linuxidc. com」0.0.0.0:80、無視されました
設定ファイル /usr /local/webserver/nginx/conf/nginx.conf の構文は問題ありません設定ファイル /usr/local/webserver/nginx/conf/nginx.conf テストは成功しました
最後に、listen 80 default;; の後に server_name _ を追加します。 解決策は次のとおりです:
#Block IP access
server{
listen 80 default;
server_name _;
return 500;
} or
server {
listen 80 dufault;
server_name _;
rewrite ^(.*) http://www. linuxidc.net Permanent;
} このようにして、linuxidc.com 経由でサーバーにアクセスできるようになり、問題は解決しましたが、具体的な原因はまだ不明です。
nginx 転送:
server {
server_name www.linuxidc.net;
rewrite ^(.*) http://www.linuxidc.com$1 Permanent;
}
2 番目のケース: サイト A へのすべての訪問が指定されたページにリダイレクトされるわけではありません
server {
server_name www.linuxidc.net;
if ($host != 'linuxidc.net' ) {
rewrite ^/(.* ) $ http://www.linuxidc.com/$1 Permanent;
}
}
最初のサーバーセグメントに書かれている場合
IPを使用してアクセスされた場合にもリダイレクトされます
listen 80 default;
server_name _;
location /xxxxx{
stub_status on;
access_log off;
}
location /{
rewrite ^ http://www.domain.com$request_uri?;
}
}
上記は、Web サーバーにアクセスするために IP またはバインドされていないドメイン名を直接使用することの Nginx の禁止事項を、関連する内容も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。