【发布时间】:2018-04-30 00:16:01
【问题描述】:
我想在同一台服务器上运行两个或多个 asp.net 核心应用程序。但是他们使用的ip和端口是127.0.0.1:5000。
【问题讨论】:
标签: ubuntu nginx asp.net-core
我想在同一台服务器上运行两个或多个 asp.net 核心应用程序。但是他们使用的ip和端口是127.0.0.1:5000。
【问题讨论】:
标签: ubuntu nginx asp.net-core
像 nginx 这样的反向代理的意义在于,您可以在其上托管多个应用程序,而不管它们使用什么 internal 端口。因此,您可以轻松地在端口 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/;
# …
}
}
这将在三个不同的子域 host1.example.com、host2.example.com 和 host3.example.com 上托管三个不同的应用程序,使用内部端口 5000、5001 和 5002。
当然,这需要您在不同的端口上实际运行您的应用程序。您可以使用 ASPNETCORE_URLS 环境变量来动态设置托管应用程序的 url,例如使用:
$ ASPNETCORE_URLS=http://localhost:5001 dotnet run
【讨论】: