是否可以在具有一个IP地址(和不同端口?)的同一台机器上运行Apache和IIS?

时间:2009-02-27 14:35:02

标签: django apache iis-6

“主”应该是IIS。是否有选项可以在不输入端口号的情况下解决Apache问题 原因是:我无法让Django在IIS上工作 任何想法将不胜感激

3 个答案:

答案 0 :(得分:5)

您可以在不同的端口上设置Apache,然后在IIS上使用重定向或代理来将人们带到Apache端口,而无需键入它。

答案 1 :(得分:5)

避免键入端口号的唯一方法是设置代理,该代理可以是两个Web服务器之一。这样,代理在备用端口上建立连接,客户端不必知道它在哪里。

我不知道IIS,但是在Apache上,你必须加载mod_proxy(我认为,mod_proxy_http)然后做这样的事情:

ProxyRequests Off

<Proxy *>
  Order deny,allow
  Allow from all
</Proxy>

ProxyPass /foo http://foo.example.com/bar
ProxyPassReverse /foo http://foo.example.com/bar

同时检查the docs for mod_proxy online

您可能还想查看轻量级网络服务器,例如lighttpd,如果您要运行两个。这是一个常见的设置,让轻型网络服务器从主要任务中完成特定任务。 (用于动态的Apache和用于静态内容的lighttpd是一个典型示例)。

除了获得更多花哨之外,还有其他可能性,例如

  • 让第三个网络服务器只进行代理,另外两个进行备用端口
  • 让它们在相同的端口上运行但只有两个IP并通过网络设置隐藏这一事实

攻击根本原因
  • 找到一个知道如何让Django在IIS上运行的人
  • 从IIS迁移到另一个网络服务器

当然,我不知道什么可能适合你的情况。

答案 2 :(得分:3)

如果这是在已经需要IIS的服务器上运行Django的问题,您可以直接在IIS上运行django,这要归功于Django-IISPyISAPIe等工作。我认为最好不要运行第二个Web服务器,当它所要做的就是将请求代理到第三个服务器,即Django代码。