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

Mar*_*ser 5 apache iis

我有一个服务器有2个IP地址.

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

我将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?

Woo*_*son 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

并启用:

    Include conf/extra/httpd-vhosts.conf 
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

并且您的domain2.com.br 的设置已完成。重新启动您的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>
    
    Run Code Online (Sandbox Code Playgroud)

现在它应该按照您的预期工作。