如何在Apache网站中托管dotnet核心Web应用程序?

时间:2019-06-26 18:26:55

标签: apache asp.net-core .net-core yii2 centos7

我有一个使用php框架开发的旧Yii2应用程序,该框架托管在Centos服务器上的路径/var/www/html上。可通过http://somedomain.com/访问此应用程序。

我正在使用ASP.NET MVC Core开发的新API项目,需要在http://somedomain.com/v2/上进行访问。

因此,是否可以将dotnet core应用程序托管在Apache站点中,并使它们同时工作?如果是,我该怎么做?

1 个答案:

答案 0 :(得分:3)

您可以添加一个反向代理来做到这一点。假设您的num = 1 while True: num += 1 three_test = 0 digits = list(map(int, str(num))) for digit in range(digits): three_test += digit if (tree_test % 3) != 0: 应用通过以下方式在ASP.NET Core上运行:

http://127.0.0.1:5000/

如果请求以dotnet run --urls=http://localhost:5000 开头,则代理到http://somedomain.com/v2/

ASP.NET Core App

首先,通过+-------+ | +----------------------------------------+ | | | | | PHP module | | | | | +----------------------------------------+ |Apache2| | | | (80) | +--------------------+ | | start with /v2/ | | | | | Asp.Net Core App | | +-------------------> | | | | (5000) | | | reverse proxy | | +-------+ +--------------------+ 中取消注释以下行来配置代理模块:

httpd.conf

然后为以LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_http2_module modules/mod_proxy_http2.so 开头的请求添加以下反向代理设置:

/v2/

现在它应该可以正常工作了。

有效的演示

这是一个演示,它在<VirtualHost *:80> ProxyPreserveHost On ProxyPass /v2/ http://127.0.0.1:5000/ ProxyPassReverse / http://somedomain.com/ ServerName somedomain.com ErrorLog ${APACHE_LOG_DIR}webapp1-error.log CustomLog ${APACHE_LOG_DIR}webapp1-access.log common </VirtualHost> 而不是8089上监听:

enter image description here