我有一个使用php
框架开发的旧Yii2
应用程序,该框架托管在Centos
服务器上的路径/var/www/html
上。可通过http://somedomain.com/
访问此应用程序。
我正在使用ASP.NET MVC Core
开发的新API项目,需要在http://somedomain.com/v2/
上进行访问。
因此,是否可以将dotnet core
应用程序托管在Apache
站点中,并使它们同时工作?如果是,我该怎么做?
答案 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
上监听: