ASP.Net Core与nginx设置主机头无法正常工作

时间:2016-12-07 03:59:35

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

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

我的 nginx.conf 就像这样

CREATE OR REPLACE PROCEDURE RENAME_TABLE
IS
BEGIN
   EXECUTE IMMEDIATE
      ('ALTER TABLE CURRENT_TABLE RENAME TO CURRENT_TABLE_OLD');

   --rename current table to old
   DBMS_OUTPUT.PUT_LINE ('rename current to old');
   COMMIT;

   EXECUTE IMMEDIATE
      ('ALTER TABLE CURRENT_TABLE_TMP RENAME TO CURRENT_TABLE');

   --rename tmp table to current
   DBMS_OUTPUT.PUT_LINE ('rename tmp to current');
EXCEPTION
   WHEN OTHERS
   THEN
      -- There was a problem somewhere.  Display the error code.
      DBMS_OUTPUT.PUT_LINE (
            'Exception raised during RENAME_TABLE'
         || TO_CHAR (SQLCODE)
         || ' - '
         || SUBSTR (SQLERRM, 1, 200));
END;
/

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

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;                
    }
}

我从浏览器导航到 mydomain.com ,它一直有效,直到我点击带谷歌按钮的登录。它会重定向到http:// localhost:5000 / signin-google而不是http:// mydomain.com / signin-google。

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

1 个答案:

答案 0 :(得分:0)

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