Nginx Proxy Manager配置WordPress遇504网关超时问题求助
Nginx Proxy Manager 出现504 Gateway Time-out错误
504 Gateway Time-out
环境配置
- 系统:启用Docker的PhotonOS Minimal,使用Portainer进行容器管理
- 通过Portainer部署的Docker Compose栈配置如下:
version: '3.8' services: wordpress1: image: wordpress:php7.2-apache environment: VIRTUAL_HOST: Site1.co.nz LETSENCRYPT_HOST: Site1.co.nz LETSENCRYPT_EMAIL: Email volumes: - Site1_data:/var/www/html depends_on: - mysql networks: - wp-network ports: - "8081:80" - "8441:443" wordpress2: image: wordpress:php7.2-apache environment: VIRTUAL_HOST: Site2.co.nz LETSENCRYPT_HOST: Site2.co.nz LETSENCRYPT_EMAIL: Emailz volumes: - Site2_data:/var/www/html depends_on: - mysql networks: - wp-network ports: - "8082:80" - "8442:443" wordpress3: image: wordpress:php7.2-apache environment: VIRTUAL_HOST: Site3.co.nz LETSENCRYPT_HOST: Site3.co.nz LETSENCRYPT_EMAIL: Emails volumes: - Site3_data:/var/www/html depends_on: - mysql networks: - wp-network ports: - "8083:80" - "8443:443" wordpress4: image: wordpress:php7.2-apache environment: VIRTUAL_HOST: Site4.co.nz LETSENCRYPT_HOST: Site4.co.nz LETSENCRYPT_EMAIL: Emails volumes: - Site4_data:/var/www/html depends_on: - mysql networks: - wp-network ports: - "8084:80" - "8444:443" mysql: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: root volumes: - mysql_data:/var/lib/mysql networks: - wp-network ports: - "3306:3306" phpmyadmin: image: phpmyadmin/phpmyadmin environment: PMA_HOST: mysql MYSQL_ROOT_PASSWORD: root ports: - "8080:80" networks: - wp-network nginx-proxy-manager: image: jc21/nginx-proxy-manager:latest restart: unless-stopped ports: - "80:80" - "443:443" - "81:81" volumes: - npm_data:/data - npm_letsencrypt:/etc/letsencrypt networks: - wp-network networks: wp-network: driver: bridge volumes: Site1_data: Site2_data: Site3_data: Site4_data: mysql_data: npm_data: npm_letsencrypt:
站点配置操作
部署完成后,通过PhotonOS虚拟机IP+WordPress容器端口8081完成了site1.co.nz的基础配置,并在该站点的wp-config.php中添加以下代码(通过Portainer卷视图操作):
/* Handle SSL and reverse proxy headers */ if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') { $_SERVER['HTTPS'] = 'on'; } /* Allow both HTTP and HTTPS */ define('FORCE_SSL_ADMIN', false);
问题重现步骤
- 重启WordPress容器
- 在本地hosts文件中添加PhotonOS虚拟机IP与site1.co.nz、www.site1.co.nz的映射
- 通过PhotonOS虚拟机IP:81访问Nginx Proxy Manager并完成初始化配置
- 添加代理主机:DNS条目设为site1.co.nz,转发目标填写Wordpress1容器的内部IP或虚拟机IP,指定端口8081
- 访问site1.co.nz时出现504 Gateway Time-out错误
已尝试的排查操作
- 查阅多个技术论坛帖子,按其中方案调整后仍未解决问题
- 尝试多种栈构建方式,甚至搭建了一个基础Plotly自定义容器,该容器在端口5000上可正常通过Nginx Proxy Manager代理
- 在全新的PhotonOS虚拟机上重新部署Nginx Proxy Manager(怀疑原环境权限问题),新环境中phpmyadmin和mysql可正常访问
内容的提问来源于stack exchange,提问作者Oversight0353
相关产品推荐
相关产品推荐

