私の設定は次のとおりです。
upstream beta {
server localhost:49213;
}
server {
listen 80;
server_name beta.example.com;
location / {
proxy_pass http://beta;
}
}
server {
listen 80;
server_name "";
return 444;
}
開いてみるとlocalhost:80
内容も見えましたねlocalhost:49213
。私はそれが正しいとは思わない。 NginxはHTTPヘッダーを持たないすべての要求を拒否する必要がありますbeta.example.com
。Host
そうですか?なぜそのようなことが起こらなかったのですか?
答え1
さて、それは答えです。 null を持つサーバーはserver_name
「デフォルト」サーバーとして宣言する必要があります。詳しくはこちらをご覧ください。http://nginx.org/en/docs/http/ngx_http_core_module.html#server_name
Nginxでは、Host
HTTPヘッダーがどのsとも一致しない場合、特に指定しない限り、最初のヘッダーであるserver
デフォルトヘッダーが使用されます。これは有効な構成です。
upstream beta {
server localhost:49213;
}
server {
listen 80;
server_name beta.example.com;
location / {
proxy_pass http://beta;
}
}
server {
listen 80 default_server; # pay attention!
server_name "";
return 444;
}