反向代理后面的Azure AD WebApp接收502 Bad Gateway

时间:2017-03-05 20:20:55

标签: asp.net-core azure-active-directory

我在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..."

正如我在许多其他帖子中读到的那样,我试图更新缓冲区大小等,但都没有用。

我的想法在哪里看。有什么想法吗?

2 个答案:

答案 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