Nginx配置问题:仅指定子域名却响应主域名,需仅启用子域名服务
Nginx仅响应指定子域名的配置方案
问题根源:Nginx会将未匹配到server_name的请求转发给默认服务器。你当前只有一个server块,它会被自动设为默认服务器,因此主域名kadiemqazzaz.com的请求也会被这个块处理。
解决方法:添加一个专门的默认server块,拦截所有未匹配到子域名的请求,具体配置如下:
# 默认服务器:处理所有未指定的域名请求(包括主域名) server { listen 80 default_server; listen [::]:80 default_server; server_name _; # 通配符匹配所有未明确指定的域名 # 直接返回404错误 return 404; # 若需要直接关闭连接,可替换为 return 444; } # 你的子域名业务服务器配置 server { listen 80; listen [::]:80; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name atlasalgorithms.kadiemqazzaz.com; location / { try_files $uri $uri/ =404; } }
配置完成后,执行以下命令重启Nginx使配置生效:
sudo systemctl restart nginx
这样设置后,只有http://atlasalgorithms.kadiemqazzaz.com能正常响应,主域名http://kadiemqazzaz.com会返回404错误(或直接断开连接)。
内容的提问来源于stack exchange,提问作者Kadiem Alqazzaz
相关产品推荐
相关产品推荐

