Apache2 VirtualHost(ProxyPass和Alias)配置适用于Ubuntu,但不适用于OSX

时间:2012-12-17 21:10:28

标签: apache2 alias virtualhost apache2.2 proxypass

我多年来一直在为我的开发环境使用Ubuntu机器,并且我正在尝试迁移到OSX(Mountain Lion)。此时唯一的打嗝是apache2配置。

在Ubuntu机器上“apache2 -v”显示

Server version: Apache/2.2.22 (Ubuntu)
Server built:   Nov  8 2012 21:37:30

在OSX机器上“httpd -v”显示

Server version: Apache/2.2.22 (Unix)
Server built:   Aug 24 2012 17:16:58

所以你可以想象我对虚拟主机配置无法正常迁移的原因感到十分困惑。

我的VirtualHost配置的以下ProxyPass和Alias位在我的第一个apache2实例上使用时非常好,但在第二个上没有。两台机器上的目录结构

对于所有意图和目的,虚拟主机配置如下

NameVirtualHost *:80

<VirtualHost *:80>

   ProxyPass /img !
   Alias /img /somedir/media/img

   ProxyPreserveHost On
   ProxyPass / http://127.0.0.1:8080/
   ProxyPassReverse / http://127.0.0.1:8080/

</VirtualHost>

目标是apache将为所有图像提供服务,端口8080处的应用服务器执行繁重的工作(常见模式)。

在Ubuntu中这很有效。在MacBook上,图像没有被提供。

2 个答案:

答案 0 :(得分:0)

验证是否正在加载代理模块。这可以通过conf文件中的动态加载配置行完成:

LoadModule  proxy_http_module    modules/mod_proxy_http.so

或编译成Apache:

./httpd -l | grep proxy
mod_proxy.c
mod_proxy_connect.c
mod_proxy_ftp.c
mod_proxy_http.c
mod_proxy_scgi.c
mod_proxy_ajp.c
mod_proxy_balancer.c

您可以从其他服务器中提取mod_proxy_http.so。

答案 1 :(得分:-1)

结果默认的apache配置定义了一个非常严格的默认站点配置。评论出来并重新启动服务器很好地清理了一切。