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

AWS多实例流量路由配置:Nginx实现域名子路径指向WordPress

标准处理流程分步指南

我来帮你一步步搞定这个需求,核心是Nginx反向代理配置加上WordPress内部URL适配,两者缺一不可,不然要么路由不对,要么WP的链接会乱跳。

一、前期准备

  • 先确认两台AWS实例的网络连通性:建议用内网IP通信(更安全且延迟低),所以要确保它们在同一个VPC下,并且WP实例的安全组允许来自Java实例(或Nginx所在实例)的80/443端口流量。如果用公网IP的话,记得WP实例安全组开放对应端口给公网,但更推荐内网方案。
  • 备份当前Nginx配置:执行cp /etc/nginx/sites-available/domain.com /etc/nginx/sites-available/domain.com.bak,万一配置出错能快速回滚。

二、修改Nginx配置(核心步骤)

找到你的domain.com对应的Nginx配置文件(一般在/etc/nginx/sites-available/或/etc/nginx/conf.d/目录下),在server块中新增location /a/的规则,完整示例如下:

server {
    listen 80;
    server_name domain.com;

    # 原Java网站的路由配置(保留你现有内容即可)
    location / {
        proxy_pass http://localhost:8080; # 假设Java服务跑在本地8080,按实际情况修改
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    # 新增:把/a/路径的流量转发到WP实例
    location /a/ {
        # 注意末尾的斜杠!这样Nginx会把/a/后面的路径(比如/a/post/1)传递给WP实例的根路径(变成WP_IP/post/1)
        proxy_pass http://WP_INSTANCE_INTERNAL_IP/; # 替换成WP实例的内网IP,公网IP也可
        # 必须设置Host头为domain.com,否则WP会用自己的IP生成链接,导致资源加载失败
        proxy_set_header Host $host;
        # 传递真实客户端IP给WP,方便日志统计
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        # 处理WP的重定向:如果WP返回跳转到domain.com/,自动改成domain.com/a/
        proxy_redirect http://domain.com/ http://domain.com/a/;
        proxy_redirect https://domain.com/ https://domain.com/a/;
    }

    # 如果用HTTPS,记得在对应的server块里也添加同样的location /a/规则
}

配置完后,先验证语法是否正确:nginx -t,如果显示test is successful,就重启Nginx生效:

  • Ubuntu/Debian:sudo systemctl restart nginx
  • CentOS/RHEL:sudo service nginx restart

三、调整WordPress内部配置(关键!不然链接会乱)

WP默认会根据访问的Host和路径生成链接,必须让它知道自己的访问地址是domain.com/a,不然会出现静态资源404、页面跳转到根域名的问题。有两种常用方法:

方法1:修改wp-config.php(推荐,更稳定)

登录WP实例,找到网站根目录下的wp-config.php文件,在/* That's all, stop editing! Happy publishing. */这行之前添加:

define('WP_HOME', 'http://domain.com/a');
define('WP_SITEURL', 'http://domain.com/a');

如果用HTTPS,把http换成https即可。保存文件后,WP会自动用这个地址生成所有链接和资源路径,不需要进后台设置。

方法2:通过WP后台修改(适合能直接访问WP后台的情况)

如果之前能通过WP实例的IP访问后台,登录后进入设置→常规,把:

  • WordPress地址(URL):改成http://domain.com/a
  • 站点地址(URL):改成http://domain.com/a
    点击“保存更改”。注意:改完后只能通过domain.com/a/wp-admin访问后台了,别再用IP访问。

另外,如果你之前开启了固定链接(比如/%postname%/),记得进入设置→固定链接,不用改任何选项,直接点击“保存更改”,刷新WP的rewrite规则,避免出现文章404的问题。

四、测试验证

  • 访问domain.com:确认Java网站正常加载,功能不受影响。
  • 访问domain.com/a:确认WP首页正常,点击文章、分类、菜单等,检查所有URL都是domain.com/a/xxx格式,图片、CSS、JS等静态资源能正常加载。
  • 测试WP后台:访问domain.com/a/wp-admin,登录后检查媒体库、文章编辑等功能是否正常,生成的预览链接是否正确。

额外注意事项

  • HTTPS适配:如果你的域名用了SSL证书,要确保Nginx的HTTPS server块也配置了相同的location /a/规则,并且WP的配置里用https开头的地址。
  • 缓存清理:如果Nginx或WP安装了缓存插件(比如WP Rocket、W3 Total Cache),记得清理缓存,避免旧的URL缓存导致异常。
  • 安全组检查:确保WP实例的安全组允许来自Nginx实例IP的80/443端口流量,不然Nginx无法转发请求到WP。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:43:18