如何使用Apache2 for Windowsconfiguration反向代理

我在Linux(Ubuntu)上启动并运行apache2上的反向代理。 现在我看到在Windows下有一个不同的文件夹结构。 我的Linuxconfiguration文件不能在Windows下工作,或者我错了吗?

请告诉我方式

正如约翰所暗示的那样,安装在Windows上的Apache的默认configuration是在一个平面文件中的Program Files\Apache2.2\httpd.conf中。 path可能有些不同,因为我目前没有Windows机器。 大多数Linux发行版都有自己的自定义分层结构,看上去如下所示。 这个例子来自Debian,可能会因其他发行版本而异。

  • /etc/apache2/
    • apache2.conf 程序包提供的configuration
    • conf.d/
      • 单独的configuration文件,通常来自其他软件包,但也可以是本地configuration文件
    • httpd.conf 本地configuration文件。 覆盖apache2.conf的内容
    • mods-available/
      • 由软件包和任何支持包提供的各个模块configuration文件
    • mods-enabled/
      • 链接到mods-available文件。 使用a2enmoda2dismod创build/删除链接。 创build链接将启用给定的模块。
    • ports.conf 启用的端口
    • sites-available/
      • 单独的VirtualHost风格的configuration文件
    • sites-enabled
      • 链接到sites-available文件sites-available 。 链接用a2ensitea2dissite创build/删除。 创build一个链接将启用给定的网站。

我已经描述了所有这些,希望能够更容易理解如何在Windows下进行复制。 除了在Windows下不支持链接(在Vista / Server 2008 / Windows 7中有这个改变)之外,设置这个结构相对容易。 但是你必须手动完成,因为默认的configuration不适合你。 确保您调整以下内容以匹配您正在从中迁移的Linux发行版。

  1. 假设Windows上的原始configuration文件位于\Program Files\Apache2.2\httpd.conf (同样,这可能不是正确的位置,我需要检查一台Windows机器),请创build以下目录:

    • \Program Files\Apache2.2\conf.d\
    • \Program Files\Apache2.2\sites-enabled\

    您不需要sites-available目录,因为Windows不支持链接。 你可以添加他们,但是事情不会一样的。 另外,我build议把模块configuration放到httpd.conf文件中。 由于它们不是由软件包pipe理器pipe理的,所以将它们放在一个地方会更容易。

  2. 从Linux的httpd.conf文件进行任何修改到Windows文件。 如果你在Linux下有一个apache2.conf文件,这很容易,因为httpd.conf只会覆盖apache2.conf

  3. 如果需要,添加一个ports.conf文件。 这个内容也可以存在于httpd.conf文件中。

  4. 将Linux conf.d目录中存在的文件复制到Windows目录中。 确保文件名以.conf结尾,如果之前没有添加。 这样做是为了帮助使目录parsing(设置在下面)更less的错误。

  5. sites-enabled Linux sites-enabled目录中存在的文件复制到Windows目录中。 如步骤4,确保文件名以.conf结尾,如果在Linux下不存在,则添加它。

  6. 将以下内容添加到httpd.conf文件的末尾:

     # If you added a ports.conf file, add the following Include ports.conf # Include the conf.d files Include conf.d/*.conf # Include the enabled sites Include sites-enabled/*.conf 
  7. 重新启动Apache。 确保您检查并更正任何configuration错误。

这可能不会让你100%,但它应该让你接近。

有什么理由不能在Windows下创build与Linux下相同的文件夹结构? 你不能指望只安装Apache,并魔法般地创build一个不属于它的默认configuration的文件夹树。 创build相同的结构,复制configuration并在适当的地方进行编辑。

现在我已经find了以下解决scheme

 NameVirtualHost *:80 <VirtualHost *:80> ProxyPreserveHost On ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> # der Adresse http://>servername</crm wird hier wie folgt umgeleitet ProxyPass /crm http://localhost:8080/crm ProxyPassReverse /crm http://localhost:8080/crm # der Adresse http://>servername</trac wird hier wie folgt umgeleitet ProxyPass /trac http://localhost:8000/trac ProxyPassReverse /trac http://localhost:8000/trac </VirtualHost> 

这转到C:\ Program Files \ Apache Software Foundation \ Apache2.2 \ conf \ extra \ httpd-vhosts.conf

如果你知道把参数放在哪里,这是非常简单的,因为标准安装后的标准文件夹结构对于ubuntu 8.04和windows2008上的apache2.2是不同的。

和平