502通过Nginx Web服务器上的子域代理的Nextcloud Docker容器上的坏网关错误



我在我的Raspberry Pi 4上运行Nginx网络服务器。我正在尝试将子域上的反向代理配置为Nextcloud Docker容器。然而,当我试图在浏览器中访问此容器时,我遇到了一个502坏网关错误。我已经确保为我试图在Nextcloud上服务器的子域生成SSL证书。

这就是我子域的服务器块的样子:

server {
listen 443 ssl;
server_name subdomain.domain.tld;
ssl_certificate /pathtokey/subdomain.domain.tld/fullchain.pem;
ssl_certificate_key /pathtokey/subdomain.domain.tld/privkey;
location / {
proxy_pass https://127.0.0.1:9000/;
proxy_ssl_server_name on;
}
}

这就是我为Nextcloud创建的docker-compose.yml文件的样子:

version: '2'
volumes:
nextcloud:
db:
services:
db:
image: linuxserver/mariadb
# command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
restart: always
volumes:
- db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=<rootPassword>
- MYSQL_PASSWORD=<mysqlPassword>
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud:fpm
ports:
- 127.0.0.1:9000:9000
links:
- db
volumes:
- /mnt/hdd/nextcloud:/var/www/html
restart: always

在更改了.yml文件后,我确保运行dockercompose-up-d。在更改nginx.conf文件后,我运行sudo systemctl重新启动nginx。我还运行了sudo nginx-t。

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

我不确定我在这些配置中的错误在哪里。如果有任何关于如何解决这个问题的建议,我将不胜感激。

您使用的是nextcloud:fpm映像,它只是一个没有web服务器的php-fpm实例
您的nginx代理配置很好,但它不起作用,因为您需要nginxfastcgi_proxy将请求代理到后端php实例
这里有一个简单的例子:
nginx(fastcgi(&lt-&gt;php-fpm(nextcloud(&lt-&gt;db

第一个解决方案:

关于如何配置nginx,可以参考nextcloud官方文档,也可以简单地复制config:nginx-configuration

第二种解决方案:

请改用nextcloud:apache图像。这个镜像已经包含了一个apache web服务器,您可以直接访问它,而不需要另一个nginx实例。

最新更新