nginx正在为请求裸IP地址(与服务器名称不匹配)的页面提供服务
我有一个nginx配置,有两个虚拟主机,没有默认站点nginx正在为请求裸IP地址(与服务器名称不匹配)的页面提供服务,nginx,nginx-config,Nginx,Nginx Config,我有一个nginx配置,有两个虚拟主机,没有默认站点 server { listen 123.45.67.89:80; server_name site_a.example.com site_a1.example.com; root /srv/site_a_checkout/html/site_a; access_log /var/log/site_a/nginx.access.log; error_log /var/log/site_a/nginx.error.log;
server {
listen 123.45.67.89:80;
server_name site_a.example.com site_a1.example.com;
root /srv/site_a_checkout/html/site_a;
access_log /var/log/site_a/nginx.access.log;
error_log /var/log/site_a/nginx.error.log;
index index.html index.htm index.nginx-debian.html;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
}
每个虚拟主机配置都有一个带有两个服务器的服务器名称
行
第二个服务器名site\u a1.example.com
的存在是因为有多个服务器,有时开发人员需要知道他们正在查看哪个服务器
如果http://site_a.example.com
,http://site_a1.example1.com
,http://site_b.example.com
或http://site_b1.example1.com
已请求
问题是如果http://123.45.67.89
请求,则为站点提供服务
没有/etc/nginx/sites\u enabled/default
,只有site\u a和site\u b的虚拟主机
为什么站点作为http://123.45.67.89
如何使对IP地址的请求失败
我也试过了,但这些都不起作用 这些解决方案都不起作用,因为它们隐式侦听0.0.0:80,而虚拟主机侦听123.45.67.89:80
对于虚拟主机侦听的任何特定IP地址,都需要存在默认服务器
这项工作:
server {
server_name _;
listen 123.45.67.89:80 default_server deferred;
return 444;
}
如果我加上:
listen 123.45.67.89:443 default_server deferred;
它会终止HTTPS连接(在可以读取SNI之前),并断开该IP地址上的所有SSL虚拟主机。这是另一天的问题 我在启用的站点中找到并安装了一个默认的-444,但nginx仍然使用裸IP地址为站点提供服务。我还尝试使用IP地址作为服务器名称进行设置,但这也不起作用。