我正在尝试使用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