我是asp.net核心的新手。我阅读了整个Microsoft正式文档,并能够在Linux Apache服务器中托管该应用程序。但是我想在一个IP地址下托管多个asp.net核心Web应用程序。请,任何人都可以在此处找到解决方案。
预先感谢
答案 0 :(得分:0)
official document向我们展示了一种将Apache用作反向代理的方法:
this.Http.post('http://localhost:3000/users/login', this.login, { observe: 'response' })
.subscribe((response) => {
console.log(response.status);
})
基本上,此配置将使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>
上进行侦听,并将*:80
等于ServerName
的所有HttpRequest代理到www.example.com
。
这就是Apache用作ASP.NET Core代理的方式。
关于您的问题,假设您有两个asp.net核心Web应用程序:
http://127.0.0.1:5000/
,并监听WebApp1
。 0.0.0.0:5000
并监听WebApp2
。 您的Apache服务器在0.0.0.0:6000
上侦听。对于任何传入的http请求,
0.0.0.0:80
等于Host
时,将此请求代理到www.webapp1.org
0.0.0.0:5000
等于Host
时,将此请求代理到www.webapp2.org
因此您可以添加两个代理:
代理1:
0.0.0.0:6000
代理2:
<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>