Xampp + IIS在同一台服务器上协同工作

时间:2018-01-28 22:30:25

标签: apache iis

我有一台服务器有2个ip地址。

我在.net(webapi,一个控制台应用程序等)中使用多个应用程序,并使用在apache上运行的PHP(w / xampp)。

我将IIS配置为在默认端口80上运行,而xampp使用端口8080。

正如我之前所说,我有两个IP地址和两个域名(例如:domain1.com和domain2.com)。

我需要将domain1.com.br指向IIS应用程序(这是有效的),但我的php应用程序永远不会到达,因为所有请求都被定向到端口80(iis控制)。

  1. 我该怎么做才能解决这个问题?
  2. 我知道我可以将两个ip指向端口80,但是当他从特定域/主机(在这种情况下,domain2.com.br)获得请求时如何告诉IIS,他重定向到端口8080?

2 个答案:

答案 0 :(得分:0)

由于apache的重定向功能,你可能需要让apache接受控制。主要的想法是设置apache,使用apache的重定向功能(vhost,如果你更喜欢这样称呼它)来将特殊请求指向你的IIS服务器。

  1. 更改您的IIS侦听端口8080(并将域设置为您的域,例如domain1.com)。让您的apache在80上听。

  2. 在apache配置文件(http.conf)中启用以下模块:

    LoadModule proxy_module modules/mod_proxy.so

    LoadModule proxy_connect_module modules/mod_proxy_connect.so

    LoadModule proxy_http_module modules/mod_proxy_http.so

    LoadModule proxy_ftp_module modules/mod_proxy_ftp.so

  3. 启用:

        Include conf/extra/httpd-vhosts.conf 
    

    3。下一步是设置虚拟主机。编辑配置文件conf\ extra\httpd-vhosts.conf

    <VirtualHost *:80>
        DocumentRoot "x:\The\Dir\to\Your\Php\Site"
        ServerName domain2.com.br   
        ErrorLog "logs/domain2-error.log"
        CustomLog "logs/domain2-access.log" common
    </VirtualHost>
    

    你的domain2.com.br的设置是Done.Restart你的apache服务器,通过域名访问你的网站,你的php站点将工作。

    1. 如果步骤按预期工作,这将是最后一步。

      <VirtualHost *:80>
          ServerName your.net.site.domain.com
          ProxyPreserveHost On
          ProxyPass "/" "http://127.0.0.1:8080/"
          ProxyPassReverse "/" "http://127.0.0.1:8080/"
          ErrorLog "logs/domain1-error.log"
          CustomLog "logs/domain1-access.log" common
      </VirtualHost>
      
    2. 现在它应该像你期望的那样工作。

答案 1 :(得分:0)

使用

  

反向代理方法

什么是反向代理方法

  • 反向代理服务器是一种典型的代理服务器 在专用网络中的防火墙后面并指导客户端请求 到适当的后端服务器。反向代理提供了一个 额外的抽象和控制水平,以确保顺畅的流动 客户端和服务器之间的网络流量。

请参阅NGINX Documentation以了解有关反向代理的更多信息。

您可以在 IIS Apache (Xampp)服务器上使用反向代理。但是,由于您有Windows Server,我建议您在IIS服务器上执行反向代理。

示例: Rewrite or Reverse proxy in IIS