如何在NGINX反向代理后配置多Docker WordPress容器网络?
解决Docker中多WordPress容器+Nginx反向代理的端口隔离问题
核心认知纠正
你担心的WordPress容器80端口冲突是不存在的——Docker自定义网络(比如桥接网络)中,每个容器都有独立的内部IP,各自的80端口相互隔离,只有当你把容器端口映射到主机端口时才会出现冲突。所以根本不需要修改WordPress容器内部的端口,也不需要把Nginx挂到主机网络。
具体实现步骤
创建自定义Docker网络
先搭建一个专属内部网络,让Nginx和所有WordPress容器都加入这个网络,它们之间可以用容器名直接通信:docker network create wp-internal-net启动WordPress容器(无需映射主机端口)
启动两个WordPress容器,加入自定义网络,不用加-p参数映射主机端口(内部网络里用容器名访问):# 第一个WordPress容器 docker run -d \ --name wp-site1 \ --network wp-internal-net \ -e WORDPRESS_DB_HOST=db-site1:3306 \ -e WORDPRESS_DB_USER=wpuser \ -e WORDPRESS_DB_PASSWORD=wppass \ -e WORDPRESS_DB_NAME=wpdb1 \ wordpress:latest # 第二个WordPress容器 docker run -d \ --name wp-site2 \ --network wp-internal-net \ -e WORDPRESS_DB_HOST=db-site2:3306 \ -e WORDPRESS_DB_USER=wpuser \ -e WORDPRESS_DB_PASSWORD=wppass \ -e WORDPRESS_DB_NAME=wpdb2 \ wordpress:latest(注意:每个WordPress需要搭配独立的MySQL/MariaDB容器,同样加入
wp-internal-net网络,用容器名作为数据库主机地址)配置Nginx反向代理容器
启动Nginx容器,映射主机的80/443端口到容器的80/443,同时加入自定义网络:docker run -d \ --name nginx-proxy \ --network wp-internal-net \ -p 80:80 \ -p 443:443 \ -v /path/to/your/nginx/config:/etc/nginx/conf.d \ nginx:latest编写Nginx反向代理配置
在你挂载的Nginx配置目录下,创建两个站点配置文件(比如site1.conf和site2.conf):- site1.conf:
server { listen 80; server_name your-site1-domain.com; location / { proxy_pass http://wp-site1: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; } } - site2.conf:
server { listen 80; server_name your-site2-domain.com; location / { proxy_pass http://wp-site2: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; } }
配置HTTPS的话,只需在Nginx配置中添加SSL证书路径,监听443端口即可,无需改动WordPress容器。
- site1.conf:
额外说明
- 所有容器都在
wp-internal-net网络内,彼此通过容器名+内部端口(比如wp-site1:80)通信,完全和主机网络隔离,只有Nginx容器对外暴露80/443端口。 - 不需要修改WordPress容器的内部端口,官方镜像的80端口在内部网络中是安全且互不干扰的。
内容的提问来源于stack exchange,提问作者Dr. Spatula
相关产品推荐
相关产品推荐

