【问题标题】:Can't get Reverse Proxy Header / https set up right on Nextcloud through Docker and Nginx Proxy Manager无法通过 Docker 和 Nginx 代理管理器在 Nextcloud 上正确设置反向代理标头/https
【发布时间】:2022-02-23 09:44:33
【问题描述】:

我认为我可以忽略来自 Nextcloud 的这些警告:

上一次后台作业执行是在 22 小时前运行的。好像有什么 错误的。检查后台作业设置↗。

  • 反向代理标头配置不正确,或者您正在从受信任的代理访问 Nextcloud。如果没有,这是一个安全 问题,并且可以允许攻击者欺骗他们的 IP 地址作为可见的 到 Nextcloud。更多信息可以在 文档↗。
  • 您正在通过安全连接访问您的实例,但是您的实例正在生成不安全的 URL。这很可能意味着 你在反向代理和覆盖配置后面 变量设置不正确。请阅读文档页面 关于这个↗。

但是,当网站运行时,我的桌面客户端应用程序不允许我连接,它显示“尽管登录 URL 以 HTTPS 开头,但轮询 URL 不以 HTTPS 开头。无法登录,因为这可能是一种安全措施问题。请联系您的管理员”。无论我输入 http://cloud.mydomain.com 还是 https://cloud.mydomain.com 都会发生这种情况。我正在使用 docker,并且在自己的 docker 容器上拥有 Nginx 代理管理器和 Nextcloud,但它们位于同一个 nginx2_default 网络上。我在 web gui 中有它作为通过端口 80 传递容器名称,因为 443 出于某种原因将不起作用,但只要我告诉 Nginx 代理管理器 HTTP,它仍然以 SSL 连接结束,但仍然通过证书。

我已经坚持了一段时间,并且发布了许多不同的帖子,但每次情况都不同,这是我得到的最接近的结果,但我仍然以 0 功能结束。一定很简单。

我觉得在这里创建一个gist 会更容易,这样所有 docker-compose 文件都可以访问,以及 nextcloud 的 .htaccess 和配置文件,我还将 docker 输出放在那里。

为了方便起见,我将在下面粘贴最相关的文件。 /home/james/newNextcloud/config/config.php

  'trusted_domains' =>    array (
    0 => 'cloud.[redacted].com',   ),   array ( 
    'trusted_proxies' => ['172.20.0.12'], 
    'overwritehost' => 'ssl-proxy.tld', 
    'overwriteprotocol' => 'https', 
    'overwritewebroot' => '/cloud.[redacted].com', 
    'overwritecondaddr' => '^172\.20\.0\.12$',    ),   'forwarded_for_headers' =>
    array (
      0 => 'X-Forwarded-For',
      1 => 'HTTP_X_FORWARDED_FOR',    ),   'datadirectory' => '/var/www/html/data',   'dbtype' => 'mysql',   'version' => '23.0.0.10',   'overwrite.cli.url' => 'https://cloud.[redacted].com',  'dbname' => 'nextcloud',   'dbhost' => 'nextcloud_db',   'dbport' => '',   'dbtableprefix' => 'oc_',   'mysql.utf8mb4' => true,   'dbuser'
=> '[redacted]',   'dbpassword' => '[redacted]',   'installed' => true,   'default_phone_region' => 'US',   'skeletondirectory' => '/var/www/html/fakeskeleton',

Docker 输出:

docker ps -a  CONTAINER ID   IMAGE                             COMMAND CREATED       STATUS                 PORTS                             NAMES 7792ac3452db   nextcloud                         "/entrypoint.sh apac…"   2 hours ago   Up 2 hours             0.0.0.0:8080->80/tcp, :::8080->80/tcp, 0.0.0.0:8443->443/tcp, :::8443->443/tcp               nextcloud 8d5a1a2ebc05   nextcloud:fpm-alpine              "/cron.sh"  2 hours ago   Up 2 hours             9000/tcp                          nextcloud2_cron_1 64d024d6ff0c   redis:alpine                      "docker-entrypoint.s…"   2 hours ago   Up 2 hours             6379/tcp nextcloud2_redis_1 d1e40d50cd5f   mariadb                           "docker-entrypoint.s…"   2 hours ago   Up 2 hours             3306/tcp nextcloud_db 29fb4aa53f89   plexinc/pms-docker                "/init"  6 hours ago   Up 2 hours (healthy)   0.0.0.0:3005->3005/tcp, :::3005->3005/tcp, 0.0.0.0:8324->8324/tcp, :::8324->8324/tcp,
0.0.0.0:1900->1900/udp, :::1900->1900/udp, 0.0.0.0:32410->32410/udp, :::32410->32410/udp, 0.0.0.0:32400->32400/tcp, :::32400->32400/tcp,
0.0.0.0:32412-32414->32412-32414/udp, :::32412-32414->32412-32414/udp, 0.0.0.0:32469->32469/tcp, :::32469->32469/tcp   plex 236b0aba1a38   jc21/nginx-proxy-manager:latest   "/init"                  6 hours ago Up 2 hours             0.0.0.0:80-81->80-81/tcp, :::80-81->80-81/tcp,
0.0.0.0:443->443/tcp, :::443->443/tcp                                                                                                                                                                                                                                                                  npm-ui f81959067233   jc21/mariadb-aria:latest          "/scripts/run.sh"        6 hours ago   Up 2 hours             3306/tcp npm-db


docker container ls CONTAINER ID   IMAGE                             COMMAND                  CREATED       STATUS                 PORTS    NAMES 7792ac3452db   nextcloud                         "/entrypoint.sh apac…"   2 hours ago   Up 2 hours             0.0.0.0:8080->80/tcp, :::8080->80/tcp, 0.0.0.0:8443->443/tcp, :::8443->443/tcp               nextcloud 8d5a1a2ebc05   nextcloud:fpm-alpine              "/cron.sh"  2 hours ago   Up 2 hours             9000/tcp                          nextcloud2_cron_1 64d024d6ff0c   redis:alpine                      "docker-entrypoint.s…"   2 hours ago   Up 2 hours             6379/tcp nextcloud2_redis_1 d1e40d50cd5f   mariadb                           "docker-entrypoint.s…"   2 hours ago   Up 2 hours             3306/tcp nextcloud_db 29fb4aa53f89   plexinc/pms-docker                "/init"  6 hours ago   Up 2 hours (healthy)   0.0.0.0:3005->3005/tcp, :::3005->3005/tcp, 0.0.0.0:8324->8324/tcp, :::8324->8324/tcp,
0.0.0.0:1900->1900/udp, :::1900->1900/udp, 0.0.0.0:32410->32410/udp, :::32410->32410/udp, 0.0.0.0:32400->32400/tcp, :::32400->32400/tcp,
0.0.0.0:32412-32414->32412-32414/udp, :::32412-32414->32412-32414/udp, 0.0.0.0:32469->32469/tcp, :::32469->32469/tcp   plex 236b0aba1a38   jc21/nginx-proxy-manager:latest   "/init"                  6 hours ago Up 2 hours             0.0.0.0:80-81->80-81/tcp, :::80-81->80-81/tcp,
0.0.0.0:443->443/tcp, :::443->443/tcp                                                                                                                                                                                                                                                                  npm-ui f81959067233   jc21/mariadb-aria:latest          "/scripts/run.sh"        6 hours ago   Up 2 hours             3306/tcp npm-db


docker volume ls DRIVER    VOLUME NAME local     f6e0828f8a826cf3c8faa9f11b9cda279999f034a8d9e09cfac26bfa0ba9eb16



docker network ls NETWORK ID     NAME                 DRIVER    SCOPE 9cf4b1fc4f1b   bridge               bridge    local 78512dde6d1b   host                 host      local 135921ebe5b5   nextcloud2_default bridge    local 4e52bbf25209   nginx2_default       bridge    local 4de38ef5961d   none                 null      local

nextcloud docker 撰写文件

version: '2.1'
 
networks:
 nginx2_default:
   external:
     name: nginx2_default
 
services:
  nextcloud:
    image: nextcloud
    container_name: nextcloud
    restart: always
    ports:
      - 8080:80
      - 8443:443
    networks:
      - nginx2_default
    links:
      - nextcloud_db
    volumes:
      - /home/james/newNextcloud:/var/www/html
      - /newRaid/Nextcloud:/var/www/html/data
    environment:
      - MYSQL_PASSWORD=[redacted]
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=[redacted]
      - MYSQL_HOST=nextcloud_db
      - APACHE_DISABLE_REWRITE_IP=1
  nextcloud_db:
    image: mariadb
    container_name: nextcloud_db
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --skip-innodb-read-only-compressed
    networks:
     - nginx2_default
    volumes:
      - /mnt/nextcloud:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=[redacted]
      - MYSQL_PASSWORD=[redacted]
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=[redacted]
  redis:
    image: redis:alpine
    restart: always  
  cron:
    image: nextcloud:fpm-alpine
    restart: always
    volumes:
      - /home/james/newNextcloud:/var/www/html
    entrypoint: /cron.sh
    depends_on:
      - nextcloud_db
      - redis

Nginx 代理管理器 docker-compose.yml

version: "3"
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    container_name: npm-ui
    restart: unless-stopped
    ports:
      # These ports are in format <host-port>:<container-port>
      - '80:80' # Public HTTP Port
      - '443:443' # Public HTTPS Port
      - '81:81' # Admin Web Port
        # - '32400:32400'  For Plex
      # Add any other Stream port you want to expose
      # - '21:21' # FTP
    environment:
      DB_MYSQL_HOST: "db"
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: "[redacted]"
      DB_MYSQL_PASSWORD: "[redacted]"
      DB_MYSQL_NAME: "npm"
      # Uncomment this if IPv6 is not enabled on your host
      # DISABLE_IPV6: 'true'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    networks:
      default:
        ipv4_address: 172.20.0.12
    depends_on:
      - db
 
  db:
    image: 'jc21/mariadb-aria:latest'
    container_name: npm-db
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: '[redacted]'
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: '[redacted]'
      MYSQL_PASSWORD: '[redacted]'
    volumes:
      - ./data/mysql:/var/lib/mysql
    networks:
      default:
        ipv4_address: 172.20.0.22

networks:
  default:
    ipam:
      config:
        - subnet: 172.20.0.0/16

【问题讨论】:

    标签: docker nginx docker-compose proxy


    【解决方案1】:

    所以你的文件帮我解决了这个问题,所以我会把我的配置文件分享给你。

    root@linux:/apps/nextcloud/app/config# vim config.php
    <?php
    $CONFIG = array (
      'htaccess.RewriteBase' => '/',
      'memcache.local'`` => '\\OC\\Memcache\\APCu',
      'apps_paths' =>
      array (
        0 =>
        array (
          'path' => '/var/www/html/apps',
          'url' => '/apps',
          'writable' => false,
        ),
        1 =>
        array (
          'path' => '/var/www/html/custom_apps',
          'url' => '/custom_apps',
          'writable' => true,
        ),
      ),
      'instanceid' => 'ocsdfgfsdg5',
      'passwordsalt' => 'Wsdgsdfgsdfgsd2IO/nY',
      'secret' => 'Asdfgsdfgsdfgsdfg',
      'trusted_domains' =>
      array (
        0 => 'cloud.sdfgfdsgsfd.org',
       ),
      'trusted_proxies' =>
      array (
        0 => '10.1.5.124',
      ),
      'overwriteprotocol' => 'https',
      'datadirectory' => '/var/www/html/data',
      'dbtype' => 'mysql',
      'version' => '23.0.2.1',
      'overwrite.cli.url' => 'http://cloud.fsdghfgsdh.org',
      'dbname' => 'fghfdgsh',
      'dbhost' => 'fghjdfdg',
      'dbport' => '',
      'dbtableprefix' => 'oc_',
      'mysql.utf8mb4' => true,
      'dbuser' => 'dfhgfghdh',
      'dbpassword' => 'dfghfdgh',
      'installed' => true,
    );
    

    【讨论】:

      猜你喜欢
      • 2021-08-23
      • 1970-01-01
      • 2019-07-19
      • 2017-08-16
      • 2021-07-06
      • 2019-02-01
      • 2016-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多