Nginx 代理管理器坏网关(Docker Wordpress 和 Nextcloud)
Posted
技术标签:
【中文标题】Nginx 代理管理器坏网关(Docker Wordpress 和 Nextcloud)【英文标题】:Nginx Proxy Manager Bad Gateway (Docker Wordpress and Nextcloud) 【发布时间】:2021-08-23 22:24:26 【问题描述】:我家里有树莓,我尝试运行以下设置:
nginx 代理管理器 (jc21/nginx-proxy-manager) 作为访问的反向代理 搬运工(搬运工/搬运工-ce) Wordpress(docker 官方图片) Nextcloud(docker 官方镜像)对于搬运工来说它工作得非常好,但对于其他两个我得到一个错误的网关错误(https 和 http)。
我在网上找到了一些解决方案,但没有一个对我有用 + 所有这些都是“做这个、这个和这个”的解决方案。我想真正了解发生了什么以及如何解决这个问题。
我在 Nginx 代理管理器中链接了我使用的 docker-compose 文件和 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:我不发布屏幕,因为我现在似乎无法发布图像。
【问题讨论】:
【参考方案1】:我也面临同样的问题。原来你需要在 nginx 代理管理器的“端口”字段中输入容器端口。例如对于 wordpress,您需要在 'forward/ip' 字段中输入 'wordpress' 并在端口中输入 '80' 才能工作。
【讨论】:
【参考方案2】:如果这是关于 nginx 代理管理器的管理页面的错误网关错误,我这样做并为我修复了,我希望它也可以解决您的问题:
-
将您的 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!
-
运行这些命令:
sudo docker-compose down
然后
sudo docker-compose up -d
【讨论】:
以上是关于Nginx 代理管理器坏网关(Docker Wordpress 和 Nextcloud)的主要内容,如果未能解决你的问题,请参考以下文章
nginx开源可视化代理管理器nginx-proxy-manager
Nginx反向代理docker容器进行域名解析绑定的实现方法
Docker集群实验环境布署--swarm6 配置上层Nginx代理,让任意Docker client访问得到高可用的管理API