Nginx 代理管理器坏网关Docker Wordpress 和 Nextcloud

问题描述

我家里有一个 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:我不发布屏幕,因为我现在似乎无法发布图片

解决方法

如果这是关于 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