Nextcloud 应用无法登录

Nextcloud applications can not login

两周前,我决定学习如何设置 Ubuntu 服务器以安装 Nextcloud。在阅读了几篇文章后,我设法使用 snap 安装了 Nextcloud,并对其进行了配置以监听 5000 端口。我必须这样做,因为我还想安装其他网络应用程序,所以我不想让 nextcloud 保留端口 80 和 443。它工作正常,我用网络浏览器、我的 Android 设备测试了它,我还安装了windows 桌面应用程序,以便上传和同步我的文件。

我已经完成了第一步,并且有一个可以正常工作的 Nextcloud 服务器。下一步是使用 Let's Encrypt 的 SSL 证书来保护它。我花了几个小时试图了解如何设置 certbot 以生成 SSL 证书,并且我使用 NGINX Web 服务器将请求从我的服务器 443 端口重定向到 nextcloud 正在侦听的 5000 端口。我使用以下配置文件来设置我的域以重定向到 5000 端口。

server {
        listen               *:80;
        server_name          cloud.computermagic.gr;
        return 301            https://$server_name$request_uri;
}
server {
        listen               *:443 ssl http2;
        server_name          cloud.computermagic.gr;

        ssl on;
        ssl_certificate      /etc/letsencrypt/live/cloud.computermagic.gr/fullchain.pem;
        ssl_certificate_key  /etc/letsencrypt/live/cloud.computermagic.gr/privkey.pem;
        ssl_stapling on;
        ssl_stapling_verify on;

        location / {
            add_header Front-End-Https      on;
            proxy_headers_hash_max_size     512;
            proxy_headers_hash_bucket_size  64;
            proxy_set_header                Host $host;
            proxy_set_header                X-Forwarded-Proto $scheme;
            proxy_set_header                X-Real-IP $remote_addr;
            proxy_set_header                X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass                      http://localhost:5000;
        }
}

我用 chrome 尝试了 nextcloud 服务器,一切都很完美。我的服务器位于使用 SSL 证书的域后面。然后我尝试使用 android 和 windows 应用程序,但由于某种原因我无法登录。

应用程序打开,我输入服务器地址,当我输入用户名和密码以允许应用程序访问我的服务器时,加载图标一直旋转。它不显示错误消息,因此我可以了解问题所在,而且我不是有经验的 linux 用户,所以我会了解问题所在。

我想配置文件有问题,因为没有重定向,服务器似乎与我尝试过的所有应用程序都能正常工作。

有人可以帮助我吗?

更新 我删除了永久重定向并且它有效。

server {
        listen               *:80;
        server_name          cloud.computermagic.gr;
#        return 301            https://$server_name$request_uri;
        location / {
            add_header Front-End-Https      on;
            proxy_headers_hash_max_size     512;
            proxy_headers_hash_bucket_size  64;
            proxy_set_header                Host $host;
            proxy_set_header                X-Forwarded-Proto $scheme;
            proxy_set_header                X-Real-IP $remote_addr;
            proxy_set_header                X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass                      http://localhost:5000;
        }
}
server {
        listen               *:443 ssl http2;
        server_name          cloud.computermagic.gr;

        ssl on;
        ssl_certificate      /etc/letsencrypt/live/cloud.computermagic.gr/fullchain.pem;
        ssl_certificate_key  /etc/letsencrypt/live/cloud.computermagic.gr/privkey.pem;
        ssl_stapling on;
        ssl_stapling_verify on;

        location / {
            add_header Front-End-Https      on;
            proxy_headers_hash_max_size     512;
            proxy_headers_hash_bucket_size  64;
            proxy_set_header                Host $host;
            proxy_set_header                X-Forwarded-Proto $scheme;
            proxy_set_header                X-Real-IP $remote_addr;
            proxy_set_header                X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass                      http://localhost:5000;
        }
}

这样放着安全吗?

我终于找到了解决问题的方法。我编辑了 config.php 文件。

sudo nano /var/snap/nextcloud/current/nextcloud/config/config.php

我插入了以下覆盖协议属性:

'overwriteprotocol' => 'https'