我在nginx反向代理后面的服务器上运行了一个ASP.NET核心应用程序。
反向代理将xxx.mydomain.com转发给https://localhost:5000。如果我使用Azure AD进行身份验证,则在登录过程后会收到502 Bad Gateway。回调路径似乎正确/ signin-oidc。我在门户网站上添加了完整的地址。
编辑: 我能够从服务器获取nginx日志,我收到以下错误:
2017/03/05 22:13:20 [error] 20059#20059: *635 upstream sent too big header
while reading response header from upstream, client: xx.xx.xxx.xxx, server:
xxx.mydomain.com, request: "POST /signin-oidc HTTP/1.1", upstream:
"https://192.168.3.20:5566/signin-oidc", host: "xxx.mydomain.com", referrer:
"https://login.microsoftonline.com/5712e004-887f-4c52-8fa1-
fcc61882e0f9/oauth2/authorize?client_id=37b8827d-c501-4b03-b86a-
7eb69ddf9a8d&redirect_uri=https%3A%2F%2...ch%2Fsignin-
oidc&response_type=code%20id_token&scope=openid%20profile&response_mode=form_pos
t&nonce=636243452000653500.NzRjYmY2ZTMtOTcyZS00N2FlLTg5NGQtMTYzMDJi..."
正如我在许多其他帖子中读到的那样,我试图更新缓冲区大小等,但都没有用。
我的想法在哪里看。有什么想法吗?
答案 0 :(得分:0)
要回答这个问题,那就是在nginx反向代理中设置的缓冲区大小。
问题是我在我的synology上运行这个,每次重启后都会重置nginx设置。所以我最终做的是写一个在重启后运行的小bash脚本,并复制我编辑的设置并重新启动反向代理。
答案 1 :(得分:0)
Synology NAS与使用Azure AD的应用程序的反向代理有同样的问题。
我做了什么:
在/ usr / local / etc / nginx / sites-enabled下创建了一个名为custom.conf的文件,其中包含以下内容:
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
如果需要,应调整值。这些对我来说在Azure AD中运行良好。
该目录下的所有文件都由nginx加载。 只需使用以下命令重新启动nginx服务:
synoservicectl --restart nginx