Apache做反向代理tomcat

apache/logs/error_log报错:No protocol handler was valid for the URL /. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.


用apache配置虚拟主机做代理出现这个错误知道是为什么嘛,尼妈的真是坑爹啊。原来是少加了几个module靠


要用apache配置虚拟主机需要加载这几个module


LoadModule proxy_module       modules/mod_proxy.so

LoadModule proxy_connect_module modules/mod_proxy_connect.so

LoadModule proxy_http_module  modules/mod_proxy_http.so

但是在linux下怎么添加这个几个组件呢?


尼妈在linux下安装apache的时候我不知道怎么把proxy这个组件添加到默认安装里面去


没有proxy这个module妈的虚拟主机配置不了,所以以下就是安装这个主件的方法


我用的是httpd-2.2.21.tar.gz这个安装程序


我放在了/opt下面


我是先解压#tar zxvf httpd-2.2.21.tar.gz


安装apache的步骤我就不说了,我的安装路径为/usr/local/apache2/


在/opt下面呢会出现一个httpd-2.2.21的文件夹


#cd httpd-2.2.21


#cd modules/proxy


#/usr/local/apache2/bin/apxs -i -c -a mod_proxy.c prox_util.c


#/usr/local/apache2/bin/apxs -i -c -a mod_proxy_http.c


#/usr/local/apache2/bin/apxs -i -c -a mod_proxy_connect.c


apxs命令解析:


-i此选项表示需要执行安装操作, 以安装一个或多个动态共享对象到服务器的modules目录中。-a此选项自动在httpd.conf文件中增加一个LoadModule行,以激活此模块,或者,如果此行已经存在,则启用之。-A与-a选项类似,但是它增加的LoadModule指令由一个井号前缀(#), 即,此模块已经准备就绪,但尚处于禁用状态。-e此选项表示需要执行编辑操作,它可以与-a和-A选项配合使用, 与-i操作类似,修改Apache的httpd.conf配置文件,但是并不安装此模块。


这样你就可以配置虚拟主机了。我内牛满面啊


为tomcat作代理


NameVirtualHost *:80


########CMS######

<VirtualHost *:80>

   ServerName ***.net.cn

   ProxyPreserveHost On

   ProxyRequests On


   ProxyPass / http://localhost:81/

   ProxyPa***everse / http://localhost:81/


   ErrorLog logs/cms.tel.comsys.net.cn_error_log

   CustomLog logs/cms.tel.comsys.net.cn_access_log common

</VirtualHost>


现在重启apache就行了


——————————————————

Apache做反向代理tomcat

apache/logs/error_log报错:No protocol handler was valid for the URL /. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.


这是mod_proxy等几个模块要单独编译安装。

/usr/local/apache/bin/apxs -c -i -a mod_proxy.c proxy_util.c

编译安装时报错:

/usr/local/apr/build-1/libtool --silent --mode=compile gcc -std=gnu99 -prefer-pic   -DLINUX -D_REENTRANT -D_GNU_SOURCE -


D_LARGEFILE64_SOURCE -g -O2 -pthread -I/usr/local/apache/include  -I/usr/local/apr/include/apr-1   -I/usr/local/apr-


util/include/apr-1   -c -o mod_proxy.lo mod_proxy.c && touch mod_proxy.slo

gcc: mod_proxy.c: No such file or directory

gcc: no input files

apxs:Error: Command failed with rc=65536


解决办法:

提示没有mod_proxy.c这个目录

#locate mod_proxy.c

/soft/httpd-2.4.9/modules/proxy/mod_proxy.c

/usr/local/apache/conf/extra/mod_proxy.conf


cd /soft/httpd-2.4.9/modules/proxy/

运行/usr/local/apache/bin/apxs -c -i -a mod_proxy.c proxy_util.c成功!

最后加载其他几个模块:

/usr/local/apache/bin/apxs -c -i -a mod_proxy_http.c

/usr/local/apache/bin/apxs -c -i -a mod_proxy_connect.c

/usr/local/apache/bin/apxs -c -i -a mod_proxy_ajp.c ajp*.c (这行ajp模式必须要加后面的ajp*.c)