如何在子路径上找到Asp.net核心站点

时间:2017-03-04 12:31:08

标签: nginx docker asp.net-core

这是我在Nginx的第一步,所以任何帮助都会很棒。

我有一个由两个容器组成的小型docker-compose应用程序: nginx的 上传

Nginx端口80在主机上公开,因此可以从我们的内部网访问Nginx,如下所示:www.mytest.net 我现在将asp.net核心站点“upload”暴露在该地址的子路径上,如: www.mytest.net/upload /

目前,我无法实现这一点,如果我尝试将其移至路径上传,上传的每个URL等都无效,我不确定是否必须配置NGINX,asp.net核心或两者都不同

Nginx.conf中的当前配置:

 location / {

            proxy_pass              http://upload:80;

            # The default minimum configuration required for ASP.NET Core
            # See https://docs.asp.net/en/latest/publishing/linuxproduction.html?highlight=nginx#configure-a-reverse-proxy-server
            proxy_cache_bypass      $http_upgrade;
            # Turn off changing the URL's in headers like the 'Location' HTTP header.
            proxy_redirect          off;
            # Forwards the Host HTTP header.
            proxy_set_header        Host $host;
            # The Kestrel web server we are forwarding requests to only speaks HTTP 1.1.
            proxy_http_version      1.1;
            proxy_set_header        Upgrade $http_upgrade;
            # Adds the 'Connection: keep-alive' HTTP header.
            proxy_set_header        Connection keep-alive;
        }
}

就像我说的,它适用于“/”,但如果我使用“上传”,由于网址不匹配,上传网站上的简单表单将不再有效。

1 个答案:

答案 0 :(得分:2)

阅读HttpContext.Request.PathBase和一个名为UsePathBase的新扩展。这些有助于隔离应用程序根URL,因此它不会弄乱您的路由。