两周前,我决定学习如何设置Ubuntu服务器以安装Nextcloud。在阅读了几篇文章后,我设法使用snap安装了Nextcloud,并对其进行了配置,以便侦听5000端口。我不得不这样做,因为我也想安装其他web应用程序,所以我不希望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用户,这样我就能了解问题所在。
我想配置文件有问题,因为如果没有重定向,服务器似乎可以与我尝试的所有应用程序正常工作。
有人能帮我吗?
UPDATE我删除了永久重定向,它起作用了。
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属性:
'overwriteprotocol' => 'https'