忙了一天发布,也算是对Apache+Tomcat的搭建有一点点心得,至于为什么花了一整天,种种原因,就此按下不表了.....
记录一下其中的一些问题,也方便以后查找。
这里我Apache的安装目录是/usr/local/apache
1.给已安装的Apache编译、添加模块(方法1)
新申请的一台机器,上面原来有一个Apache2.0.59在Running,现在要在上面部署一个Tomcat,通过原有的Apache转发给我们的Tomcat。原来上面只编译安装了php的处理模块,现在要加上ProxyPass就需要mod_proxy,proxy_http2个模块,网上有介绍直接把mod_proxy.so和proxy_http.so直接复制到apache/modules下面,然后apache/conf/httpd.conf加上:
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/proxy_htp.so
重启apache,但是重启也许不起作用。当然还有另外一种方法。
2.编译添加Apache模块(方法2)
LoadModule proxy_http_module modules/proxy_htp.so
重启apache,但是重启也许不起作用。当然还有另外一种方法。
找到源文件目录:
cd /data/soft_back/httpd-2.0.59/modules/proxy
编译、安装mod_proxy和proxy_http:
/usr/local/apache/bin/apxs -c -i -a mod_proxy.c proxy_util.c /usr/local/apache/bin/apxs -c -i -a proxy_http.c proxy_util.c vi /usr/local/apache/conf/httpd.conf
可以看到httpd.conf里面多了2行:
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/proxy_htp.so
我们配上我们的转发:
ProxyPass /examples/ http://10.0.0.1:8080/examples/
3.Apache转发和Tomcat监听地址
配上上面的转发后我们也许还是访问不到tomcat里的examples。
众所周知,我们访问Tomcat可以直接用localhost或者是ip(localhos或IP地址:10.1.1.15内网IP)来访问,但是如果我们给tomcat的server.xml加上一段配置就可以限制请求只能从这个地址过来。
tomcat/conf/server.xml的connector中没配address,netstat -tulpn查看端口,发现tomcat的地址端口字段都是
“:::8009 ”,我们给http和ajp的connector加上下面一段配置(举例):
<Connector address="127.0.0.1" port="8080" ................... />
改好之后,重启tomcat,现在我们只能通过localhost或者127.0.0.1来访问了,而内网IP10.1.1.15访问时,会提示连接被拒绝。
由此如果我们给connector配上了这个监听地址,tomcat就只监听这个地址过来的请求了。
下午部署服务器时也遇到了这个错误。修改转发目标:
ProxyPass /examples/ http://127.0.0.1:8080/examples/
如此我们也可以通过Apache来访问我们的tomcat了。
这样我们把我们的Tomcat与外网隔离开来了,让用户只能通过指定的服务器访问我们tomcat提供的服务。