如何在Nginx服务器上运行多个asp.net核心应用程序

时间:2018-04-29 13:36:44

标签: ubuntu nginx asp.net-core

我想在同一台服务器上运行两个或更多的asp.net核心应用程序。但他们使用的ip和端口是127.0.0.1:5000。

1 个答案:

答案 0 :(得分:3)

像nginx这样的反向代理的意思是你可以在其上托管多个应用程序,无论他们使用什么内部端口。因此,您可以轻松地在端口5000,5001,5002等上托管应用程序,然后让nginx在端口80上的不同域上公开所有这些应用程序,或者甚至作为同一域的子路径(如果应用程序设置正确以支持该)。

所以nginx配置可能如下所示:

server {
    server_name host1.example.com;

    location / {
        proxy_pass http://localhost:5000/;
        # …
    }
}

server {
    server_name host2.example.com;

    location / {
        proxy_pass http://localhost:5001/;
        # …
    }
}

server {
    server_name host3.example.com;

    location / {
        proxy_pass http://localhost:5002/;
        # …
    }
}

这将使用内部端口5000,5001和5002在三个不同的子域host1.example.com,host2.example.com和host3.example.com上托管三个不同的应用程序。

当然,这要求您实际在不同的端口上运行应用程序。您可以使用ASPNETCORE_URLS环境变量动态设置应用程序托管的网址,例如使用:

$ ASPNETCORE_URLS=http://localhost:5001 dotnet run