【问题标题】:ASP.Net Core with nginx set host header not working带有 nginx 设置主机头的 ASP.Net Core 不起作用
【发布时间】:2016-12-07 03:59:35
【问题描述】:

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

我将此代码添加到 配置 方法以使用转发标头

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

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

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

【问题讨论】:

    标签: asp.net nginx asp.net-core-mvc


    【解决方案1】:

    我相信 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-08
      • 2022-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-15
      相关资源
      最近更新 更多