sas*_*gya 2 linux apache asp.net-core-2.0
我是asp.net核心的新手。我阅读了整个 Microsoft 官方文档,并且能够在 Linux Apache 服务器中托管该应用程序。但我想在单个 IP 地址下托管多个 asp.net 核心 Web 应用程序。请,任何人都在这里发布解决方案。
提前致谢
在正式文件向我们展示了使用Apache作为反向代理的方式:
<VirtualHost *:*>
RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
</VirtualHost>
<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:5000/
ProxyPassReverse / http://127.0.0.1:5000/
ServerName www.example.com
ServerAlias *.example.com
ErrorLog ${APACHE_LOG_DIR}helloapp-error.log
CustomLog ${APACHE_LOG_DIR}helloapp-access.log common
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
基本上,这个配置将让Apache侦听*:80和代理任何的HttpRequest其ServerName平等www.example.com来http://127.0.0.1:5000/。
这就是用作 ASP.NET Core 代理的 Apache 的工作方式。
至于你的问题,假设你有两个asp.net core web应用:
WebApp1并监听0.0.0.0:5000。WebApp2并监听0.0.0.0:6000。您的 Apache 服务器侦听0.0.0.0:80. 对于任何传入的 http 请求,
Host等于时www.webapp1.org,将此请求代理到0.0.0.0:5000Host等于时www.webapp2.org,将此请求代理到0.0.0.0:6000所以你可以添加两个代理:
代理1:
<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:5000/
ProxyPassReverse / http://127.0.0.1:5000/
ServerName www.webapp1.org
ServerAlias *.webapp1.org
ErrorLog ${APACHE_LOG_DIR}webapp1-error.log
CustomLog ${APACHE_LOG_DIR}webapp1-access.log common
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
代理2:
<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:6000/
ProxyPassReverse / http://127.0.0.1:6000/
ServerName www.webapp2.org
ServerAlias *.webapp2.org
ErrorLog ${APACHE_LOG_DIR}webapp1-error.log
CustomLog ${APACHE_LOG_DIR}webapp2-access.log common
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)