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

AWS ALB子目录访问出现拒绝连接错误,求助解决方案

解决ALB转发WordPress子目录请求时的「拒绝连接」问题

以下是针对你的环境和问题的具体排查与修复步骤:

1. 验证ALB路径规则配置

  • 确保路径条件使用的是前缀匹配(ALB规则中「路径为/wp*」属于前缀匹配),而非精确匹配。检查规则的优先级,确保这条规则是所有规则中优先级最高的,避免被其他规则拦截。
  • 确认规则的转发动作指向正确的目标组,且目标组的端口设置为80(与EC2上Web服务监听端口一致)。

2. 检查目标组健康状态

  • 查看目标组的健康检查结果:如果EC2实例处于不健康状态,ALB会拒绝将请求转发到该实例,直接返回「拒绝连接」。
  • 确认健康检查的路径(默认是/)是否能被EC2上的Web服务正常响应,若WordPress根目录的默认页面不是index.html,需修改健康检查路径为/index.php。

3. 排查EC2上Web服务的配置

假设你使用的是Apache或Nginx,需确保:

  • Apache:
    • 虚拟主机配置中,DocumentRoot指向WordPress的根目录(比如/var/www/html),且Directory块允许所有路径的请求:
      <Directory /var/www/html>
          AllowOverride All
          Require all granted
      </Directory>
      
    • 确保mod_rewrite模块已启用,WordPress的固定链接功能依赖该模块。
  • Nginx:
    • 配置文件中需添加正确的location规则,将所有请求转发到WordPress的index.php:
      location / {
          try_files $uri $uri/ /index.php?$args;
      }
      
  • 确认Web服务监听的是80端口,且在EC2本地可以通过curl http://localhost/wp-login.php正常访问,排除EC2内部服务故障。

4. 修正WordPress的站点URL配置

  • 若能通过EC2内网IP访问后台,将「设置-常规」中的站点URL和主页URL修改为https://domain.name。
  • 若无法登录后台,可通过修改wp-config.php文件强制设置:
    define('WP_HOME','https://domain.name');
    define('WP_SITEURL','https://domain.name');
    
  • 配置Web服务传递X-Forwarded-Proto头,让WordPress识别原始请求是HTTPS协议:
    • Apache添加:RequestHeader set X-Forwarded-Proto "https"
    • Nginx添加:proxy_set_header X-Forwarded-Proto $scheme;

5. 检查安全组与NACL规则

  • ALB的安全组:允许互联网访问443端口(入站规则),允许访问目标组的80端口(出站规则)。
  • EC2的安全组:允许ALB所在安全组访问80端口(入站规则),允许出站到互联网(用于WordPress更新等)。
  • 子网的NACL:允许入站的443(来自互联网)和80(来自ALB)流量,允许出站的响应流量。

6. 分析ALB访问日志

  • 开启ALB的访问日志功能,查看请求的详细记录:
    • 检查target_status_code字段,如果是502,说明EC2实例拒绝了ALB的连接请求;如果是404,说明Web服务找不到对应的路径。
    • 查看request_uri字段,确认ALB转发的路径是否与原始请求一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 13:16:03