配置NextCloud&;Nginx反向端口转发-登录身份验证错误

配置NextCloud&;Nginx反向端口转发-登录身份验证错误,nginx,Nginx,我已经在我的web服务器上设置了一个nginx反向代理服务器,它接收SSL通信,并将其反向代理到我的web服务器上的端口8080,该端口是运行nextcloud docker映像的公开端口。我可以从桌面web浏览器登录,但无法从iPhone登录。当我从应用程序登录时,我收到错误消息“访问被禁止,请求无效”。Github问题将该问题标识为从请求中删除的身份验证头,尽管它给出的解决方案是针对Apache的,而不是针对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头授权听起来像是我的答案:)想把它设为一个吗?