配置NextCloud&;Nginx反向端口转发-登录身份验证错误
我已经在我的web服务器上设置了一个nginx反向代理服务器,它接收SSL通信,并将其反向代理到我的web服务器上的端口8080,该端口是运行nextcloud docker映像的公开端口。我可以从桌面web浏览器登录,但无法从iPhone登录。当我从应用程序登录时,我收到错误消息“访问被禁止,请求无效”。Github问题将该问题标识为从请求中删除的身份验证头,尽管它给出的解决方案是针对Apache的,而不是针对Nginx的。我真的不熟悉授权头。如何修改我的Nginx服务器指令来解决这个问题 当前设置配置NextCloud&;Nginx反向端口转发-登录身份验证错误,nginx,Nginx,我已经在我的web服务器上设置了一个nginx反向代理服务器,它接收SSL通信,并将其反向代理到我的web服务器上的端口8080,该端口是运行nextcloud docker映像的公开端口。我可以从桌面web浏览器登录,但无法从iPhone登录。当我从应用程序登录时,我收到错误消息“访问被禁止,请求无效”。Github问题将该问题标识为从请求中删除的身份验证头,尽管它给出的解决方案是针对Apache的,而不是针对Nginx的。我真的不熟悉授权头。如何修改我的Nginx服务器指令来解决这个问题 当
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name cloud.foo.com;
ssl_certificate /etc/letsencrypt/live/cloud.foo.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/cloud.foo.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
}
您可能需要添加一个设置,以便在代理服务器的响应中显式传递
授权
头
例如:
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass_header Authorization;
}
根据我看到的另一个经过身份验证的服务的反向代理设置,在默认情况下,Nginx可能不会将
授权
头从代理服务器的响应传递给客户端。虽然中没有列出这一点,但可能有必要避免干扰。我不确定Nginx是否会删除授权
响应头,但我看到另一个云服务为反向代理指定了以下内容。尝试添加:proxy\u pass\u头授权代码>听起来像是我的答案:)想把它设为一个吗?