请求apache和iis服务器的路由


Request routing for apache and iis server

我正在使用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/