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

502通过Nginx Web服务器上的子域代理的Nextcloud Docker容器上的网关错误,docker,nginx,raspberry-pi,reverse-proxy,nextcloud,Docker,Nginx,Raspberry Pi,Reverse Proxy,Nextcloud,我在我的Raspberry Pi 4上运行Nginx Web服务器。我正在尝试将子域上的反向代理配置为Nextcloud Docker容器。但是,当我尝试在浏览器中访问此容器时,收到502错误网关。我已确保为我尝试为Nextcloud提供服务器的子域生成SSL证书 这是我的子域的服务器块的外观: server { listen 443 ssl; server_name subdomain.domain.tld; ssl_certificate /path

我在我的Raspberry Pi 4上运行Nginx Web服务器。我正在尝试将子域上的反向代理配置为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;
       }
}
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
这就是我的Nextcloud docker-compose.yml文件的样子:

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;
       }
}
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

我不确定这些配置中的错误在哪里。如果您能提供有关如何修复此问题的任何建议,我将不胜感激。

您正在使用
nextcloud:fpm
image,它只是一个没有web服务器的php fpm实例
您的nginx代理配置很好,但无法工作,因为您需要nginx
fastcgi\u proxy
将请求代理到后端php实例
这里有一个简单的例子:
nginx(fastcgi)php fpm(nextcloud)db

第一种解决方案: 可以参考nextcloud官方文档了解如何配置nginx,或者只需复制配置:

第二种解决方案:
改用
nextcloud:apache
image。此映像已经包含一个apache web服务器,您可以直接访问它,而无需另一个nginx实例。

谢谢,我能够修复此问题,并使用apache映像使nextcloud正常工作。