You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS负载均衡器访问返回Nginx默认页EC2访问正常配置问题咨询

问题根因

问题核心是Nginx的server块匹配规则导致的:

  • 你当前配置的server_name vm-ip仅会匹配Host头为EC2实例IP的请求,你直接访问EC2 IP时Host头符合规则,所以能正常跳转。
  • 当请求通过AWS负载均衡转发时,HTTP请求的Host头为负载均衡的DNS名称,无法匹配你写的vm-ip规则,Nginx就会默认加载未被你修改的默认server块配置,所以返回Nginx默认页。
  • 额外注意:如果你没有删除Nginx安装后自带的default.conf配置文件,默认配置的server块优先级会高于你自定义的无default_server标记的配置,也会导致请求走默认配置。

解决方案

按以下步骤修改配置即可:

  1. 修改server块匹配规则
    将你的Nginx配置调整为如下形式,适配所有来源的80端口请求:
server {
    listen   80 default_server; # 标记为80端口默认处理块
    # 删掉原来的listen vm-ip:80行,不需要绑定特定IP

    server_name _; # 匹配所有Host头,无需指定具体IP或域名
    # 如果你需要限制仅允许特定域名访问,也可以写成 server_name <LB的DNS名称> <你后续要绑定的自定义域名>;

    root /usr/share/nginx/html;
    index index.html;

    server_tokens  off; # disable the Server nginx header 

    # enable gzip
    gzip on;
    gzip_disable "msie6";

    gzip_comp_level 6;
    gzip_min_length 1100;
    gzip_buffers 16 8k;
    gzip_proxied any;
    gzip_types
        text/plain
        text/css
        text/js
        text/xml
        text/javascript
        application/javascript
        application/x-javascript
        application/json
        application/xml
        application/rss+xml
        image/svg+xml;

    location / {
        proxy_pass https://<dns of website I want to be redirected to>;
    }
}
  1. 删除默认配置文件
    执行以下命令删除Nginx自带的默认配置,避免冲突:
rm -f /etc/nginx/conf.d/default.conf
# 如果是Debian/Ubuntu系统,还要删除sites-enabled下的默认配置:
rm -f /etc/nginx/sites-enabled/default
  1. 重载配置生效
    先验证配置语法正确性,再重载配置:
nginx -t
systemctl reload nginx

配置完成后再访问负载均衡DNS即可正常跳转。


内容的提问来源于stack exchange,提问作者Nayden Van

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 09:54:05