我正在尝试使用Nginx托管我的ASP.Net核心应用程序。

我的nginx.conf像这样

server {
    listen 80;
    server_name mydomain.com;

    location / {
        proxy_set_header        Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto $scheme;

        proxy_pass http://localhost:5000;
    }
}


我将此代码添加到Configure方法中以使用转发的标头

app.UseForwardedHeaders(new ForwardedHeadersOptions {
    ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto,
    ForwardLimit = null,
    RequireHeaderSymmetry = false
});


我从浏览器导航到mydomain.com,并且该操作一直有效,直到我单击Loggin with google按钮。它重定向到http:// localhost:5000 / signin-google而不是http://mydomain.com/signin-google。

我如何将其重定向到http://mydomain.com/signin-google?

最佳答案

我相信proxy_redirect指令可以提供帮助。

根据:
NGinX Documentation for proxy_redirect

proxy_redirect:“设置应在代理服务器响应的“位置”和“刷新”标头字段中更改的文本。”

所以:

proxy_redirect http://localhost:5000/ http://example.com/


可能是您的问题的解决方案。

您甚至可以使用变量来简化支持?

proxy_redirect http://localhost:5000/ http://$host:$server_port


进一步阅读:
Host ASP.NET Core on Linux with Nginx

10-07 19:52
查看更多