1,首先确保 httpd.conf 加载了mod_proxy.so,mod_proxy_http.so 二个模块,但是我的服务器安装的时候是通过WDCP OS部署的,所以配置中缺少这两个模块,这也是耗费我不少时间的地方
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
下面我们要自己手动编译这两个模块:
./apxs -i -a -c ~/lanmp/httpd-2.2.24/modules/proxy/mod_proxy.c ~/lanmp/httpd-2.2.24/modules/proxy/proxy_util.c
./apxs -c -i -a ~/lanmp/httpd-2.2.24/modules/proxy/mod_proxy_http.c
编译完成以后,LoadModule 的两行配置文件已经自动插入到了 httpd.conf 中。注意这里 ~/lanmp/httpd-2.2.24/modules/proxy/proxy_util.c ,在编译 mod_proxy.c 要和 proxy_util.c 一起编译,否则 service httpd reload 的时候会报错
httpd: Syntax error on line 55 of /www/wdlinux/httpd-2.2.24/conf/httpd.conf: Cannot load /www/wdlinux/httpd-2.2.24/modules/mod_proxy.so into server: /www/wdlinux/httpd-2.2.24/modules/mod_proxy.so: undefined symbol: ap_proxy_location_reverse_map
2,配置apache的一个虚拟机
<VirtualHost *:80>
ServerName a.yourdomain.com
ProxyPreserveHost on
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
</VirtualHost>
注意 : / http://localhost:3000/ 的斜杠都是要的,不是我写错了。