如何使用AWS FARGATE在NGINX容器上部署WordPress网站
在AWS Fargate中实现Nginx与WordPress容器的流量转发
核心逻辑
同一个Fargate任务定义下的容器共享awsvpc网络命名空间,它们无需额外网络配置,就能通过localhost或者容器名称直接互相访问。
具体配置步骤
1. 确认任务网络模式
确保任务定义的网络模式为awsvpc(Fargate默认配置),这是容器间互通的基础。
2. 配置容器端口
- WordPress容器:在任务定义中配置容器端口为
80,无需设置主机端口(仅内部访问即可),同时给容器设置明确名称,比如wordpress。 - Nginx容器:配置主机端口和容器端口均为
80,让外部流量能通过Fargate服务端口进入Nginx。
3. 编写Nginx反向代理配置
修改Nginx配置文件,将所有请求转发至WordPress容器。示例配置如下:
server { listen 80; server_name _; location / { # 两种访问方式二选一:localhost或容器名称 proxy_pass http://localhost:80; # proxy_pass http://wordpress:80; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
注意:使用容器名称访问时,需和任务定义中WordPress容器的名称完全一致。
4. 设置容器启动依赖(可选)
为避免Nginx启动时WordPress尚未就绪,可在Nginx容器配置中添加启动依赖:
"dependsOn": [ { "containerName": "wordpress", "condition": "STARTED" } ]
5. 服务与负载均衡配置(可选)
若需对外提供服务,创建Fargate服务时,将负载均衡目标组指向Nginx容器的80端口,外部流量会经负载均衡→Nginx→WordPress的路径流转。
验证方法
任务启动后,进入Nginx容器执行curl http://localhost:80或curl http://wordpress:80,若返回WordPress页面,则说明容器间通信正常。
内容的提问来源于stack exchange,提问作者Piyush Jadhav
相关产品推荐
相关产品推荐

