ホームページ > バックエンド開発 > PHPチュートリアル > Nginx は、Web サーバーにアクセスするための IP またはバインドされていないドメイン名の直接使用を禁止しています

Nginx は、Web サーバーにアクセスするための IP またはバインドされていないドメイン名の直接使用を禁止しています

WBOY
リリース: 2016-07-30 13:31:05
オリジナル
1235 人が閲覧しました

今日は、IP 経由でのみサーバーにアクセスできるように Nginx を設定します。これは、他のユーザーが未登録のドメイン名を解析してサーバーが切断されるのを防ぐためです。インターネットソリューションから次の解決策を見つけました:

Nginx のデフォルトの仮想ホストは、ユーザーが IP 経由でアクセスするか、未設定のドメイン名経由でアクセスするときに有効になります (たとえば、誰かが自分のドメイン名をあなたの IP にポイントする)。設定に次の行を追加します:

listen 80default; # # の後のデフォルトパラメータは、これがデフォルトの仮想ホストであることを示します。

この設定は非常に便利です。

たとえば、誰かが IP または未知のドメイン名を介してあなたの Web サイトにアクセスし、有効なコンテンツが表示されないようにしたい場合は、その人に 500 を返すことができます。
現在、中国の多くのコンピューター室では、Web サイトの所有者が空の電源をオフにする必要があります。ホストヘッダーを使用して、未登録のドメイン名がそれらを指すことを防ぎます。次のように設定できます:
server {
listen 80default;
return 500;

このトラフィックを収集して、独自の Web サイトにインポートすることもできます:

server {

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 _;

server_name www.linuxidc.com linuxidc。 com

return 500;

}

or
server {
listen 80 dufault;
server_name _;

server_name www.linuxidc.com linuxidc.com

rewrite ^(.*) http://www. linuxidc.net Permanent;

}

このようにして、linuxidc.com 経由でサーバーにアクセスできるようになり、問題は解決しましたが、具体的な原因はまだ不明です。


nginx 転送:

最初の状況: サイト A へのアクセスはサイト B にリダイレクトされます

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を使用してアクセスされた場合にもリダイレクトされます


しかし、これにはまだ問題があります, 一部の特別なアドレスにアクセスするには IP を使用する必要がありますが、その他のアドレスは禁止されています。たとえば、Monitoring Treasure が IP を使用して自分のマシンの nginx ステータス情報に直接アクセスできるようにしたいと考えています。IP を使用してアクセスされる他のリクエストはすべてドメイン名にリダイレクトされます。

server {
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 チュートリアルに興味のある友人に役立つことを願っています。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート