我家里有一个 Raspberry,我尝试运行以下设置:
它对于 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 代理管理器的“端口”字段中输入容器端口。例如,对于 WordPress,您需要在“转发/IP”字段中输入“wordpress”并在端口中输入“80”才能正常工作。
首先,您可以查看 Nginx 代理管理器错误日志:
/your/docker/path/data/logs/proxy-host-<id>_error.log
我有 502 Bad Gateway 并且日志中出现错误:
SSL 握手中的对等关闭连接,同时与上游进行 SSL 握手
那是因为我使用了 HTTPS/SSL,但没有在
Force SSL
中的 SSL
选项卡中检查 Proxy Host
。
查看完整指南注释如何使用Nginx代理管理器
如果这是关于 nginx 代理管理器管理页面的错误网关错误,我这样做并为我修复了,我希望它也能解决您的问题:
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