日期:2014-05-17 浏览次数:20935 次
话说最近玩VPS和LINUX,linux本人也是刚刚接触,所以有很多东西都比较肤浅,还望读者见谅。
?
centos5.4的版本
?
昨天好像是写了tomcat和jdk的安装,这个比较简单,就不用说了。关键是安装起来以后要能用,使用vps的目的就是把所有的网站都过渡上来,包括PHP和jsp的 不排除以后有asp的存在,现在网站都运行稳定,而且j2ee那个系统一直是跑在万网的jsp虚拟主机上,所以不含糊的选择了centos,又php在linux中是默认裸支持,所以非常给力!
?
测试场景:现在有3个网站,分别采用不同程序语言开发,JSP ?PHP asp,现在需要实现2个域名访问不同的网站。默认环境已经安装了tomcat和apache(初始安装)。
apache默认端口80
tomcat默认端口8080
思路:整合TOMCAT和apache网上说有3种方法,JK方式,就是tomcat的connecter? 还有一种使用apahce2.x支持的代理模块方式,然后最后一种好像是AJP的方式。经过选择选用代理方式,先不管其他2种的优点和速度,这里实现结果特别重要。
?
代理模块需要apahce中的proxy_module modules/mod_proxy.so和LoadModule proxy_http_module modules/mod_proxy_http.so。这2个东西可以去apahce的官方下载到,也可以下载源码包来自己编译生成到/etc/httpd/modules下去。你ls下这个目录可以看到所有的模块都在这里。
?
然后在/usr/lib/httpd/modules下的模块会同步上面,意思就是说,只要前面的so生成成功,这里会自动多一个so文件。
?
打开/etc/httpd/conf/httpd.conf这个文件
vi?/etc/httpd/conf/httpd.conf
set nu //显示行号
:1000 跳转到1000行我这里是1000行,此处可以不用写,注意是Last line mode模式(按esc可切换)
?
首先找到NameVirtualHost *:80这句话,如果没有就查找NameVirtualHost,然后下面肯定有
?
<VirtualHost *:80> ServerAdmin xxx@163.com DocumentRoot /var/local/abc ServerName 域名1 ServerAlias 也可以填域名1 ProxyRequests Off ProxyPass / http://域名1/ ProxyPassReverse / http://域名1/ DirectoryIndex index.html index.jsp 首页! </VirtualHost>?
?
<VirtualHost *:80> ServerAdmin xxx@163.com DocumentRoot /var/local/abcd ServerName demo.abcd.net ServerAlias demo.abcd.net ProxyRequests Off ProxyPass / http://demo.abcd.net:8080/ ProxyPassReverse / http://demo.abcd.net:8080/ DirectoryIndex index.html index.jsp 首页! </VirtualHost>?
?
上面这个还是比较容易理解的,主要就是设置了一个东西,当域名(可以正常访问的)到这里的时候默认是访问80端口,所以上面是设置了当请求到该服务器时如何对域名进行转发。
第二个就是设置和tomcat的整合,当访问demo.abcd.net的时候,直接转发到服务器8080端口下去访问该域名,就相当于远程浏览器访问demo.abcd.net:8080了
查看一下端口lsof |grep tomcat和lsof -i:8080可以看到你想要的信息,lsof -i:8080是用来查看8080端口是谁在使用!
然后重新启动一下apache:service httpd restart 等待启动完成,OK
现在不急着访问,还需要设置一下tomcat
打开tomcat的service.xml ?我的在/usr/local/tomcat/conf/service.xml下。vi后输入:set nu显示行,这里你可以清晰的看到tomcat的配置:Connector中可以看出HTTP8080端口,然后AJP是8009端口。
下面找到engine这个标签,该文件只此一个标签。engine处理在Connector中接受到的所有客户请求!
可以看到defaulthost是localhost,这里无伤大雅,别去管它,当然你要设置成你的域名也可以。
其子标签host设置如下,name修改成域名,appbase就是程序路径,默认好像是webapps,就是tomcat默认源码发布的位置,这里可以设置成绝对路径没问题/usr/local/tomcat/webapps
host就是定义了一个虚拟主机,所以要实现单IP多域名的话就需要设置多个host,然后可以把appbase设置到程序目录下,访问的时候可直接到达每一个应用程序的根目录
host标签下添加Context,这个上下文定义可以参照
?
<Context path="" docBase="/usr/local/tomcat/webapps" debug="1" privileged="true" reloadable="true"> </Context>
?
?docbase是文档路径,path不填表示访问的时候默认是以域名转发到的路径为根路径,一般不用管它
?
然后保存退出:wq
?
这是需要重新启动一下tomcat
到达tomcat的bin目录下我这里是/usr/local/tomcat/bin/shutdown.sh ?运行这个然后再运行/usr/local/tomcat/bin/startup.sh启动,完成重启
?
此时在webapps下新建2个文件夹,表示2个不同的站点,然后放入index.html?
?
浏览器输入域名可以访问到不同的网站说明配置成功!
?
我这里是采用的2级域名。经过一番设置,没问题。希望可以有更多的进步!有兴趣朋友一起研究。
?