【问题标题】:Request routing for apache and iis serverapache 和 iis 服务器的请求路由
【发布时间】:2016-08-09 07:16:17
【问题描述】:

我正在使用 IIS 服务器运行我的网站 (www.example.com)。现在我的要求是从 Apache 服务器为 PHP 运行网站 (www.example.com),从 IIS 服务器为 ASP .NET 运行 www.example.com/XYZ url。

这种路由可行吗?

【问题讨论】:

    标签: php .net apache iis routing


    【解决方案1】:

    您是指在同一个 Windows Server 上吗?在 80 端口上?

    我认为不可能在一个端口上运行两项服务。服务器必须先处理端口 80 上的传入请求,然后再决定将其路由到哪个服务,然后每个服务必须在解析域名之前接受该请求。服务器和服务,在为时已晚之前无法知道请求是针对哪个进程的。

    如果您不介意在非标准端口上运行其中一项 Web 服务,它应该可以工作。你试过吗?

    【讨论】:

      【解决方案2】:

      你可以在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 服务器的端口更改为例如8080 (HTTP) 和 8443 (HTTPS) 并使用

        ProxyPass /XYZ http://localhost:8080/
        ProxyPassReverse /XYZ http://localhost:8080/
      

      【讨论】:

        猜你喜欢
        • 2011-11-17
        • 2013-04-29
        • 1970-01-01
        • 2016-12-21
        • 2013-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-10
        相关资源
        最近更新 更多