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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 06:32:08