Nginx ドメイン制限 質問する

Nginx ドメイン制限 質問する

以下の設定を見つけてください。/etc/nginx/sites-enabled私のサイトのドメイン名で。(mysite.lk)

server {  
   listen   80;
   server_name mysite.lk www.mysite.lk;

   location / {  
        proxy_set_header   X-Forwarded-For $remote_addr;
        proxy_set_header   Host $http_host;
        proxy_pass "http://127.0.0.1:8080";
   }

} 

アプリケーションはポート8080で実行されており、ここでは80のトラフィックをすべて8080にリダイレクトしています。私のウェブサイトはマイサイトそして当サイトについてドメイン名。

したがって、私は他のすべてのドメインを制限/ブロックする(mysite.lk と www.mysite.lk を除く) は、このサーバー IP に送信されます。 これを実現するために必要な変更は何ですか?

私は、nginx が任意のドメイン名に応答するのはなぜですか?しかし、nginx の起動時にエラーが発生しました。

助けてください! ありがとうございます。

アップデート

答えが見つかりました。以下のように、指定された構成の前に、構成の先頭にキャッチオール サーバー ブロックが必要です。コード ブロックは次のようになります。

server {
    return 403;
}

server {
    listen   80;
    server_name mysite.lk www.mysite.lk;
    location / {
        proxy_set_header   X-Forwarded-For $remote_addr;
        proxy_set_header   Host $http_host;
        proxy_pass "http://127.0.0.1:8080";
   }

}

ベストアンサー1

Nginxで定義された最初のサーバーは、default_serverデフォルトとして扱われるので、1つをデフォルトとして追加し、412(前提条件失敗)または要件に最も適した他のステータスを返すだけで、後続のサーバーがそれに従うのに役立ちます。server_name

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name _;
    return 412;
} 

server {
    listen   80;
    server_name mysite.lk www.mysite.lk;
    location / {
        proxy_set_header   X-Forwarded-For $remote_addr;
        proxy_set_header   Host $http_host;
        proxy_pass "http://127.0.0.1:8080";
   }
}

おすすめ記事