我正在使用IIS服务器运行我的网站(www.example.com)。现在我的要求是运行网站(www.example.com)从Apache服务器的PHP和www.example.com/XYZ url从IIS服务器的asp.net。
这个路由可行吗?
你是说在同一个Windows Server上吗?在80端口?
我认为在一个端口上运行两个服务是不可能的。服务器必须在端口80上处理传入请求,然后决定将其路由到哪个服务,然后每个服务必须在解析域名之前接受请求。服务器和服务没有办法知道请求是针对哪个进程的,否则就太晚了。如果你不介意在一个非标准端口上运行一个web服务,它应该可以工作。你试过吗?
您可以在apache上使用反向代理功能。
a2enmod proxy proxy_http
然后将/XYZ路由到apache配置
中的IIS服务器(或IIS端口)。<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ProxyPass /XYZ http://old.iis.server/
ProxyPassReverse /XYZ http://old.iis.server/
</VirtualHost>
重新启动apache,它应该工作正常。
编辑:如果它必须在同一物理机器上,则必须将IIS"移动"到另一个端口。两个服务都不能绑定到端口80(HTTP)/443(HTTPS)。这是根本不可能的。一个端口-一个服务。因此,将IIS-Server的端口更改为8080 (HTTP)和8443 (HTTPS)。和使用
ProxyPass /XYZ http://localhost:8080/
ProxyPassReverse /XYZ http://localhost:8080/