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/
ProxyPassReverse / 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)