web-dev-qa-db-ja.com

デフォルトサーバーを防ぐ最善の方法は?

私はいくつかの仮想ホストを持っていますが、空白のページ、エラーページ、または一般にNginxのリソースの最も効率的な使用方法のいずれかによってデフォルトの仮想ホストを「オフ」にしたいのですが、他の仮想ホストへのアクセスは許可しています定義済みドメイン。

27
DanH

HTTP 444 コードを返すdefault_serverを定義します。

server {
    listen      80 default_server;
    server_name _;
    return      444;
}

(4xxエラーコードが返されるということは、クライアントがリクエストを失敗したリクエストとして解釈できることを意味します HTTP 200空白ページですが、完全に機能します 。)

44
Rob Howard

空のindex.htmlファイルのあるディレクトリを指すdefault vhostを定義するだけです。

server {
    listen       80 default_server;
    server_name  _ ;
    root /var/www/placeholder ; 
    index index.html;
}

空のインデックスを/ var/www/placeholderに配置します

4
wojciechz

私はこのフォームのasp.netコアドキュメントを学びます

https://docs.Microsoft.com/en-us/aspnet/core/Host-and-deploy/linux-nginx?view=aspnetcore-3.1#configure-nginx

server {
    listen   80 default_server;
    # listen [::]:80 default_server deferred;
    return   444;
}

あなたはnginxドキュメントでもそれを見つけることができます

https://nginx.org/en/docs/http/request_processing.html

server {
    listen      80;
    server_name "";
    return      444;
}

ここでは、サーバー名は空の文字列に設定され、「Host」ヘッダーフィールドのないリクエストに一致します。接続を閉じる特別なnginxの非標準コード444が返されます。

0
ws_

なぜすべてを否定しないのですか

server {
    listen       80 default_server;
    server_name  _;

    location / {
        deny    all;
    }
}
0
Joel Ma