我有一个旧的php
使用开发的应用程序Yii2
框架托管在Centos
路径上的服务器/var/www/html
。该应用程序可在以下位置访问http://somedomain.com/
.
我正在开发使用新的 API 项目ASP.NET MVC Core
需要可以访问http://somedomain.com/v2/
.
那么,是否可以举办dotnet core
应用程序内部Apache
网站并让它们同时工作?如果是,我该如何实现?
您可以添加反向代理来执行此操作。比方说你的ASP.NET Core
应用程序运行于http://127.0.0.1:5000/
by:
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 | |
+-------+ +--------------------+
首先,配置代理模块取消注释这些行 in 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
代替80
:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)