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

mrk*_*tas 3 ubuntu nginx asp.net-core

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

pok*_*oke 5

像 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/;
        # …
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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

$ ASPNETCORE_URLS=http://localhost:5001 dotnet run
Run Code Online (Sandbox Code Playgroud)