我有一台运行 IIS 的 Windows 2003 Server(因为需要托管 ASP 站点)。
我想添加一些非 ASP 站点(HTML、PHP 和 MySQL),所以我想我可以在 8080 上运行 apache。
让我有点困惑的是,如果有人访问 DomiainA.com,IIS 会拦截它并将其转发到运行 apache 的 DomainA.com:8080。我可以通过在域的 IIS www-root 中放置服务器端 javascript 重定向来实现这一点。
我还能做些什么更合适的事情?
答案1
通常,这是通过重定向规则解决的,服务器会告诉客户端正确的位置(对用户透明,但用户会看到正确的 URL)。在 Apache 中,重定向规则非常容易使用,可以在配置中全局使用,也可以在本地使用 .ht* 文件。
如果使用 IIS 很难做到,或者 IIS 没有提供廉价的(例如性能、延迟)解决方案,也许您想在端口 80 上运行 Apache,在 8080 上运行 IIS。
否则,如果不是迫不得已,我不会同时维护两个 Web 服务器。(旁注:Apache 更胜一筹,因此使用单独的 IIS 来服务 ASP 确实很有意义)
答案2
正如其他人提到的,没有理由不能在 IIS 下运行 PHP 应用程序。话虽如此,您可以将 IIS 配置为仅侦听特定的 IP 地址(默认情况下,它将占用计算机上每个 IP 上的端口 80,无论您是否将站点配置为使用该 IP)。然后,您可以在未绑定到 IIS 的 IP 地址上运行 Apache,并且可以毫无问题地同时运行两者。除非有令人信服的理由使用 Apache,否则我只会在 IIS 中运行 PHP 应用程序。
答案3
PHP 在 IIS 下运行。您需要找到比这更好的理由来运行 httpd...
答案4
不要使用 JavaScript 进行重定向,那样设计不好。
如果您想在不进行复杂设置的情况下处理此问题,只需通过 IIS 运行 PHP 并跳过第二台服务器。