Nginx 代理管理器错误网关(Docker Wordpress 和 Nextcloud)

问题描述 投票:0回答:3

我家里有一个 Raspberry,我尝试运行以下设置:

  • Nginx 代理管理器(jc21/nginx-proxy-manager)作为访问的反向代理
  • Portainer(Portainer/Portainer-ce)
  • Wordpress(docker 官方镜像)
  • Nextcloud(docker官方镜像)

它对于 portainer 来说工作得非常好,但对于另外两个我得到了一个错误的网关错误(https 和 http)。

我在网上找到了一些解决方案,但没有一个对我有用+所有这些都是“做这个,这个和这个”解决方案。我想真正了解发生了什么以及如何解决这个问题。

我链接了我使用的 docker-compose 文件以及 Nginx 代理管理器中的 conf 屏幕。

感谢您的帮助!

Nginx 代理管理器

    version: "3.8"
    networks:
        dockerpi:
        external: true
    services:
    npm-app:
        image: "jc21/nginx-proxy-manager:latest"
        ports:
        - "80:80"
        - "81:81"
        - "443:443"
        environment:
        DB_MYSQL_HOST: "npm-db"
        DB_MYSQL_PORT: 3306
        DB_MYSQL_USER: "npm"
        DB_MYSQL_PASSWORD: "npm"
        DB_MYSQL_NAME: "npm"
        volumes:
        - ./data:/data
        - ./letsencrypt:/etc/letsencrypt
        networks:
        - dockerpi
    npm-db:
        image: "jc21/mariadb-aria:latest"
        environment:
        MYSQL_ROOT_PASSWORD: "npm"
        MYSQL_DATABASE: "npm"
        MYSQL_USER: "npm"
        MYSQL_PASSWORD: "npm"
        volumes:
        - ./data/mysql:/var/lib/mysql
        networks:
        - dockerpi

画师

    version: "3.8"
        networks:
            dockerpi:
            external: true
        services:
        portainer:
            image: portainer/portainer
            privileged: true
            ports:
            - "8000:8000"
            - "9000:9000"
            volumes:
            - "./data:/data"
            - "/var/run/docker.sock:/var/run/docker.sock"
            restart: always
            networks:
            - dockerpi

Nextcloud

    version: "3.8"
    networks:
        dockerpi:
        external: true
    services:
    nextcloud-db:
        image: mariadb
        restart: always
        command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
        volumes:
        - ./db:/var/lib/mysql
        environment:
        - MYSQL_ROOT_PASSWORD=nexcloud
        - MYSQL_PASSWORD=nexcloud
        - MYSQL_DATABASE=nextcloud
        - MYSQL_USER=nextcloud
        networks:
        - dockerpi
    nextcloud-app:
        image: nextcloud
        restart: always
        ports:
        - 8010:80
        - 9010:9000
        links:
        - nextcloud-db
        volumes:
        - ./nextcloud:/var/www/html
        environment:
        - MYSQL_PASSWORD=nextcloud
        - MYSQL_DATABASE=nextcloud
        - MYSQL_USER=nextcloud
        - MYSQL_HOST=nextcloud-db
        networks:
        - dockerpi

Wordpress

    version: "3.8"
    networks:
        dockerpi:
        external: true
    services:
    wp-test:
        image: wordpress
        restart: always
        ports:
        - 8020:80
        environment:
        WORDPRESS_DB_HOST: wp-test-db
        WORDPRESS_DB_USER: exampleuser
        WORDPRESS_DB_PASSWORD: examplepass
        WORDPRESS_DB_NAME: exampledb
        volumes:
        - ./wordpress:/var/www/html
        networks:
        - dockerpi
    wp-test-db:
        image: mariadb
        restart: always
        environment:
        MYSQL_DATABASE: exampledb
        MYSQL_USER: exampleuser
        MYSQL_PASSWORD: examplepass
        MYSQL_RANDOM_ROOT_PASSWORD: "1"
        volumes:
        - ./db:/var/lib/mysql
        networks:
        - dockerpi

ps:我不发布屏幕,因为我现在似乎无法发布图像。

wordpress docker reverse-proxy nextcloud portainer
3个回答
1
投票

我也面临着同样的问题。结果你需要在 nginx 代理管理器的“端口”字段中输入容器端口。例如,对于 WordPress,您需要在“转发/IP”字段中输入“wordpress”并在端口中输入“80”才能正常工作。


0
投票

首先,您可以查看 Nginx 代理管理器错误日志:

/your/docker/path/data/logs/proxy-host-<id>_error.log

我有 502 Bad Gateway 并且日志中出现错误:

SSL 握手中的对等关闭连接,同时与上游进行 SSL 握手

那是因为我使用了 HTTPS/SSL,但没有在

Force SSL
中的
SSL
选项卡中检查
Proxy Host

查看完整指南注释如何使用Nginx代理管理器


-1
投票

如果这是关于 nginx 代理管理器管理页面的错误网关错误,我这样做并为我修复了,我希望它也能解决您的问题:

  1. 将 docker-compose.yml 文件更改为:
version: '2'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    environment:
      DB_MYSQL_HOST: "db"
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: "npm"
      DB_MYSQL_PASSWORD: "npm"
      DB_MYSQL_NAME: "npm"
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
  db:
    image: 'jc21/mariadb-aria:latest'
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: 'npm'
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: 'npm'
      MYSQL_PASSWORD: 'npm'
    volumes:
      - ./data/mysql:/var/lib/mysql

我将其更改为版本 2 而不是 3!

  1. 运行这些命令:

sudo docker-compose down

然后

sudo docker-compose up -d

© www.soinside.com 2019 - 2024. All rights reserved.