通向架构师的道路(第一天)之Apache整合Tomcat

原文转自:  http://blog.csdn.net/lifetragedy/article/details/7698555

一、先从J2EE工程的通用架构说起

这是一个通用的Web即B/S工程的架构,它由:

ü   Web Server


ü   App Server


ü   DB Server


三大部分组成,其中:

²  Web Server

置于企业防火墙外,这个防火墙,大家可以认为是一个CISCO路由器,然后在CISCO路由器上开放了两个端口为:80和443。

80端口:用于正常的http访问

443端口:用于https访问,即如果你在ie里打入https://xxx.xxx.xx这样的地址,默认走的是443这个端口。

WebServer专门:用于解析HTML、JS(JavaScript)、CSS、JPG/GIF等图片格式文件、TXT、VBSCRIPT、PHP等一切一切“静态”网页内容。

²  App Server

置于企业防火墙内,它和Web Server之间的连接必须且一定为内部IP连接。

外部IP:即Internet IP地址,我们的web服务器一般会有一个内部IP一个外部IP,因此在这里,我们的App Server没有任何外部IP,只有内部IP,所以我在这边说App Server与Web Server只能以内部IP形式连接。

打比方说我们用的是tomcat,它的端口为8080,那么这个ip地址上的8080端口只能由任何内部ip才能访问,外部的internet是访问不了的,这样做就是为了安全。

App Server用于解析我们的任何需要Java编译器才能解析的“动态”网页,其实App Server本身也能解析任何静态网页的。

那么我们这样来想一下:

我们让负责专门解析静态网页的Web Server来解析html等内容,而让App Server专门用于解析任何需要Java编译器才能解析的东西,让它们“两人”各司其职。这样作的好处:

1)    为App Server“减压”,同时也提高了performance

2)    不用再把8080这个端口暴露在internet上了,也很安全,必经我们的app server上可是有我们的代码的,就算是编译过的代码也容易被“反编译”,这是很不安全的。

3)    为将来的进一步的“集群扩展”打好了基础

web服务器(apache) 和 app服务器(weblogic) 服务器 之间到底什么区别?

apache是web服务器,weblogic是应用服务器,用户通过internet访问部署在应用服务器上的应用程序必须首先连接web服务器,web服务器连接应用服务器,应用服务器连接后端的数据库服务器,之所以称之为中间件,就是因为他起着承上启下的作用,前面连接web服务器,后面连接数据库服务器,这就是weblogic之所以称之为中间件的原因。你可以上网找找三层架构的示意图,就会更加明白了!

一般的顺序是这样的,请求——F5——apache——weblogic——数据库。
F5和apache都是可选的,F5是为了网络负载而存在的,apache存在的可能性比较多,有可能是请求转发,有可能是静态页面处理,等等。
weblogic的功能比较多,大体说来就是处理业务逻辑,提高应用系统的性能、应用级别的负载均衡、后台数据库的性能等等。

²  DB Server

打比方说我们用的是Oracle,它需要通过1521与App Server进行连接是不是?那么这个1521我们称为数据库连接端口,如果把它暴露在Internet上,是不是在危险了点?就算我们的密码很复杂,但对于高明的黑客来说,要攻破你的口令也只是时间上的问题而己。

因此我们把我们的DB Server也和App Server一样,置于内网的防火墙。任何的DB连接与管理只能通过内网即在公司企业内部来访问,就是这个道理。

二、动手来架构

2.1 Oracle数据加的安装与配置

DB(Oracle)我已经为大家准备好了,连接信息为:


IP:


10.225.10x.xx


Port:


1521


Username/Password:


xxx/xxx


Sid:


Jcoedb1


url:


jdbc:oracle:thin:@10.225.10x.xx:1521:xxx

所以,根据上述的架构,我们可以把如下这样的一份清单丢给NSS或者是相关的网络管理部门,让他们给我们开通相应的端口:


Web Server


对外IP: xxx.xxx.xxx.xxx
对内IP:10.225.xxx.xxx

向internet开通80与443端口


App Server


对内IP: 10.225.xxx.xxx

只对10.225.段的ip开放8080,8009等端口,


Db Server


对内IP: 10.225.xxx.xxx

只对10.225.段的ip开放1521端口

2.2 App Server的安装

直接解压tomcat至你的本地如:d:\tomcat,我这边用的目录名叫tomcat2,大家随意,最好名字能够越简单越好d:\tomcat或者c:\tomcat就行,不要放得太“深”。

2.3 Web Server的安装

我们在这边将安装Apache For Win 2.2.x,它将占用你机器的80和443端口。因此如果你机器上有任何程序占用你的80和443端口,必须将它关闭掉,比如说:

我们装有微软的IIS,这本身也是一个WebServer,那么请你将它关闭:

ControlPanel->Administrative Tools->Service,找到IISAdmin和,将它全部关闭并将启动方式设为:manual以便于不用每次重启后再要去手动关闭一下。

然后用netstat –ano找到任何还在占用80端口的程序,将它关闭掉。

2.4 开始安装Apache Http Server

我们将安装这个版本的apache http server作为我们今后一直使用的Web Server



这边的server name你们要填入自己的server的真实名,不能用我这个,这个servername如:shnlap93.cts.com只能够我用,这个名称是全局唯一的,和你的IP一样。


选全部安装

装完后你会多出一个这样的图标来,点击该图标,里面有用于控制apache http server的启动、停止与重启等操作选项。同时在你们的“服务”面板中,也能发现这样的一个服务项,它启动时默认是随着系统的启动而启动的,我们把它改成“手动”吧,因为将来我们还要安装IBM Http Server来作练习。


装完后,在Apache2.2启动的前提下,打开一个ie输入http://localhost,你将会得到这样的一个页面,就说明你的Apache的安装是成功的。

2.5 Apache的配置

学Java的人,必须会这个Apache的配置,要不然你怎么模拟环境、搭建环境和架构环境?光会Coding是远远不够的,你将永远只配作个码农。。。嘿嘿嘿!有很多人发觉到了后面JAVA学不上去了,关键因素在于:配置。

你会配环境了,那么你就能模拟任何客户方、开发方的环境。

你会配环境了,你的代码将来上线时才能成功运行。

你会配环境了,所以整个工程的技术核心就是你。

跟着我的教程,你们将会安装和运行达近百个各种软件与配置,搞得你一股臭味一股臭味!!

你准备好了没有?

当然,不用怕,因为我的配置都是实际运行的环境,所以网上的一些东西你可以不用去看,因为很多人都是在网上进行拷贝、复制,有时也不经过验证,会让你走很多的弯路到头来还是落得个BUG一天世界,就看我的教程吧。

Apache的配置主要集中在httpd.conf文件,它位于你的安装目录,比如:

D:\tools\httpd\conf\

我们用ultraedit或者相关文本编辑工具打开它,来看它的内容:

先来查找到如下这一行:

#ServerName

我们可以得到如下这一行内容:


#ServerName shnlap93.cts.com:80

这就是我们的主机名了,我们可以将前面的“#”去掉,并将其改为:


ServerName 10.225.106.35:80

改完后存盘,在重启你的Apache2.2前我们先测试一下我们的Apache的配置文件是否改得对:



如果在你点了Test Configuration后,黑屏一闪而过,说明你的改动无误,否则这个黑屏会一直停留在当前状态,并且告诉你,你的配置改动有错,错在哪里。

重新启动你的Apache



找到如下这行:

DocumentRoot

你会发下有这样的一行内容:


DocumentRoot "D:/tools/httpd/htdocs"

这个叫作DocumentRoot即webroot,即:发布目录,发布在这个目录下的任何工程都会在Apache服务开启时被装载成标准的web工程,我们现在动手来把这个WebRoot定位到我们自己的发布目录中去吧。


DocumentRoot "d:/www"

我们把它改到了d盘的www目录中去了,然后我们在该目录中放入一个index.html文件,内容为:


<html><body><h1>Hey man, apache works!</h1></body></html>

重启我们的Apache服务,来测试一下:



嘿嘿,我们得到了什么?禁止访问,为什么?

找到下面这一段:


<Directory />

    Options FollowSymLinks

    AllowOverride None

    Order deny,allow

    deny from all

</Directory>

看到了没?

现在,把这个”deny from all”改成”allow fromall’吧。


<Directory />

    Options FollowSymLinks

    AllowOverride None

    Order deny,allow

    allow from all

</Directory>

修改完后重启你的Apache服务



Ok,我们的Apache的发布目录已经成功更改到了d:\www目录下了,我们再来做一个实验:

我们在IE浏览器中输入: http://localhost/css/,我们看到了什么?



这还了得,用户如果是个初级黑客都可以知道我们的服务器上有哪些文件,哪些目录甚至可以直接看到我们的文件内容,怎么办?

找到下面这行


Options FollowSymLinks indexes

把它注掉改成下面这样


#Options FollowSymLinks indexes

Options None

不要急,再往下找,还有


Options Indexes FollowSymLinks

又来一个,再改掉


#Options Indexes FollowSymLinks

Options None

改完这两条后重启你的Apache服务

再次打开一个新的IE,输入:http://localhost/css/,我们看到了如下的界面:



好了,Apache的基本配置完成了即:

1)  基本的安全配置,不允许目录访问

2)  把WebRoot改到另一个物理目录上而不使用Apache自带的WebRoot目录

2.6 整合Apache与Tomcat

Apache(Web Server)负责处理HTML静态内容;

Tomcat(App Server)负责处理动态内容;



其实就是上述这样的一个架构,下面是原理

1)      Apache装有一个模块,这个模块叫mod_jk

2)      Apache通过80端口负责解析任何静态web内容

3)      任何不能解析的内容,用表达式告诉mod_jk,让mod_jk派发给相关的app server去解释。

通过上述的文字描述我们可以得知:

1)  我们需要在Apache中先装一个mod_jk

2)  我们需要在httpd.conf中写点表达式

下面来实现。

1)      把mod_jk-1.2.31-httpd-2.2.3.so手工copy进我们的Apache安装目录的modules目录下,这个文件的全名叫: mod_jk-1.2.31-httpd-2.2.3.so,大家可以从ftp上的“/JavaArchitect/mod_jk/”目录中获取,因为这个文件是我用C++在本地重新编译过的,网上下载的是src即源码,省去大家再去编译的时间了,而且一些其它网上下载的mod_jk.so是无法使用的。

2)      用ultraedit打开httpd.conf文件,跑到文件最后面加入以下几行:


LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so

JKWorkersFile conf/workers.properties

JkLogFile logs/mod_jk.log

<VirtualHost *>

ServerAdmin localhost

DocumentRoot d:/www/

ServerName localhost

DirectoryIndex index.html index.htm index.jsp index.action

ErrorLog logs/shsc-error_log.txt

CustomLog logs/shsc-access_log.txt common

 

JkMount /*WEB-INF ajp13

JkMount /*j_spring_security_check ajp13

JkMount /*.action ajp13

JkMount /servlet/* ajp13

JkMount /*.jsp ajp13

JkMount /*.do ajp13

JkMount /*.action ajp13

 

JkMount /*fckeditor/editor/filemanager/connectors/*.* ajp13

JkMount /fckeditor/editor/filemanager/connectors/* ajp13

</VirtualHost>

关键的是这两句:

LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so

JKWorkersFile conf/workers.properties

代表:

ü   Apache载入一个额外的插件,用于连接tomcat。

ü   连接时的配置参数描述位于Apache安装目录的/conf目录下的一个叫workers.properties文件中,mod_jk一般使用ajp13协议连接,使用的是tomcat的8009端口。

3)      Worker.properties文件内容如下:


workers.tomcat_home=d:/tomcat2

workers.java_home=C:/jdk1.6.32

ps=/

worker.list=ajp13

worker.ajp13.port=8009

worker.ajp13.host=localhost

worker.ajp13.type=ajp13

4)      告诉我们的Apache,哪些是要交给tomcat来解析,除此之外都由Apache本身来解析


<VirtualHost *>

ServerAdmin localhost

DocumentRoot d:/www/

ServerName localhost

DirectoryIndex index.html index.htm index.jsp index.action

ErrorLog logs/shsc-error_log.txt

CustomLog logs/shsc-access_log.txt common

 

JkMount /*WEB-INF ajp13

JkMount /*j_spring_security_check ajp13

JkMount /*.action ajp13

JkMount /servlet/* ajp13

JkMount /*.jsp ajp13

JkMount /*.do ajp13

JkMount /*.action ajp13

 

JkMount /*fckeditor/editor/filemanager/connectors/*.* ajp13

JkMount /fckeditor/editor/filemanager/connectors/* ajp13

</VirtualHost>

大家看到没,所有的/servlet/*都由tomcat负责解析,所有的jsp, .do, .action都由tomcat解析。

此处还有一个特殊的/fckeditor,这个是我们使用的一个博客编辑器,这个因为是servlet的,因此也需要交给tomcat铁析。

5)      将/cbbs工程布署到tomcat的webapps目录下

6)      将/cbbs同样手工copy一份到d:/www目录下

7)      删除d:/www/cbbs/WEB-INF这个目录,嘿嘿,因为d:/www下的东西是由Apache解析的,所有的WEB-INF下的都是Java,我们只需要布署在tomcat下即可,是不是?

8)      重启tomcat,重启Apache,在ie中直接输入: http://localhost/cbbs,使用sally/abcdefg登录,操作一下,一切成功

Oh…yeah, tomcat+apache一步搞定。

三、用于实验的cbbs工程配置

最后附上cbbs布署需要用到的配置,相关的工程可通过ftp的” /Java Architect/Project/”下的cbbs.zip来获取。

ü   在tomcat中打开server.xml加入:


<Resource

driverClassName="oracle.jdbc.OracleDriver"

factory="org.apache.commons.dbcp.BasicDataSourceFactory"

maxActive="25" maxIdle="100" maxWait="5000" name="jdbc/eltds"

password="xxx"

type="javax.sql.DataSource"

url="jdbc:oracle:thin:@10.225.101.51:1521:jcoedb1"

         username="xxx"/>


<Context crossContext="true" docBase="D:/upload" path="/uploadpic" reloadable="true"/>

<Context docBase="cbbs" path="/cbbs" reloadable="true"/>

ü   手工在d盘根目录建立一个upload目录,在此目录内再建立一个image目录。

ü   在tomcat中打开context.xml加入


<ResourceLink   name="jdbc/cbbsds"   type="javax.sql.DataSource"   global="jdbc/cbbsds"/>

 




分享到: 

上一篇:补课了,30分钟让你学会java自定义annotation

下一篇:通向架构师的道路(第二天)之apache tomcat https应用

86
3

查看评论

50楼 gst6062825 昨天 23:13发表 [回复]
楼主是要出书吧,顶一个!
49楼 liub1989 昨天 22:21发表 [回复]
请问博主,我静态页面动态页面访问都正常,我自己建了个测试的servlet,testServlet ,但是无法访问,提示没有找到这个URL,我以为是没有符合JkMount /servlet/* ajp13这个规则,所以改为servler/testServlet,经过tomcat可以正常访问,但是通过apache还是无法访问,我感觉是apache没有把servlert分给tomcat的原因,请问是哪里配置问题?我的apache是2.2.22
48楼 huangxin5257 3天前 10:07发表 [回复]
感谢这么好的原创文章,感谢博主

Re: lifetragedy 3天前 10:18发表 [回复]
回复huangxin5257:你的图标真牛B
47楼 hdu09075340 3天前 13:23发表 [回复]
很不错的文章,体系结构很完善。像这样的好文章,我一定会多多拜读的。
46楼 xtwolf008 2013-01-18 14:48发表 [回复]
NB,看来要多学习配置环境了
45楼 wqmain 2013-01-15 23:31发表 [回复]
好文章,真心不错!
44楼 ThinkEye点net 2013-01-15 00:54发表 [回复]
感谢博主分享,我转载去了,

http://johnny.thinkeye.net/archives/181

已标明作者与出处,如果侵犯了你的权益,thinkeye.net@gmail.com ,可以联系我删除!

43楼 belldandy5200 2013-01-06 20:58发表 [回复]
能多几个楼主这样的技术达人分享经验。。。。。。。。。。。何愁不能自主创新。。。。。
42楼 dweizhao 2013-01-05 00:01发表 [回复]
楼主 你好,http://localhost/css/这个css是自带的吗?我的404,这是怎么回事?

Re: lifetragedy 2013-01-05 12:12发表 [回复]
回复dweizhao:当然不是,这是我的一个实验项目,你可以自行找一个标准的WAR工程去实验
41楼 sxfcct 2012-12-31 11:49发表 [回复]
非常好,实践成功
40楼 xibo126 2012-12-26 14:46发表 [回复]
谢谢楼主分享经验。不过那个ccbs工程能给我发一份不,
我个人真的搞不定。我的邮箱:xibo_126@126.com

Re: lifetragedy 2012-12-26 15:09发表 [回复]
回复xibo126:那个是公司内的FTP,你可以自己拿 你自己的标准的WAR工程来实验
39楼 yll_358918552 2012-12-25 11:36发表 [回复]
你好,我问下 我在用httpserver访问我的应用时,没反映?
38楼 软件攻城师 2012-12-25 11:08发表 [回复]
感谢博主分享。
37楼 lh900525 2012-12-24 17:48发表 [回复]
博主,为什么我按照你说的配置报错,
Bad Gateway

The proxy server received an invalid response from an upstream server.
请给点意见,谢谢

Re: lifetragedy 2012-12-24 20:38发表 [回复]
回复lh900525:希望没有搞出来的同志们自己好好调调,看看日志,都是一些非常简单的问题应该,要有搞通宵也要搞出来的精神,只有这样,才能把这个东西学到自己手上,而一旦你会了,以后就都会了.
36楼 fsy123456accp 2012-12-24 11:33发表 [回复]
虽然我是搞.net的,但是看到好文,必须顶一个!!!
35楼 zhujyy110 2012-12-13 16:11发表 [回复]
按照步骤配置了apache
目录访问不了,目录下的.html文件也访问不了.
是不是还要配置其他的

Re: lifetragedy 2012-12-13 16:28发表 [回复]
回复zhujyy110:希望没有搞出来的同志们自己好好调调,看看日志,都是一些非常简单的问题应该,要有搞通宵也要搞出来的精神,只有这样,才能把这个东西学到自己手上,而一旦你会了,以后就都会了.

Re: zhujyy110 2012-12-14 15:40发表 [回复]
回复lifetragedy:顶一个
34楼 ht99582 2012-12-13 10:48发表 [回复]
为什么不用proxy_ajp方式呢,不是更简单吗?

Re: lifetragedy 2012-12-13 11:03发表 [回复]
回复ht99582:可以啊,这只是其中一种方式,用来教学而己,当学习者在使用MOD_JK时就会了解到,哦。。。还有另一种方式,就会自己去试了.
编程人员的自学能力很重要,需要一通百通,别人点拨一下,其余时间主要还是要靠自己.
33楼 mengdeliangmdl 2012-12-07 17:23发表 [回复]
感谢楼主,上个问题解决了,以后错了要多看log了,现在出了新问题。。can't receive the response header message from tomcat has forced a connection for socket 632 ...这个 无从下手了。。。

Re: dongruilong 4天前 11:37发表 [回复]
回复mengdeliangmdl:你看一下你应该是映射的tomcat http协议,而不ajp协议,
http 默认8080,ajp默认8009
32楼 kaenry 2012-12-07 13:38发表 [回复]
实现还是谢谢楼主分享。我想问那个CBBS.zip的项目包在哪儿下载,真找不到

Re: lifetragedy 2012-12-07 15:34发表 [回复]
回复kaenry:那个是上家公司我用来给所有的新进毕业生培训用的DEMO 工程,你自己可以拿一个简单的WAR工程去试这个布署,只要是标准的WAR包或者工程就行了.
31楼 zhanghaj011 2012-12-06 10:38发表 [回复]
您好,不知道现在留言您能不能看到,我是个新手,我把自己tomcat下的工程用jar 打成war包 在tomcat的 webapps下和c:/www下都放了,配置也都差不多,localhost/css/11.html 静态页面可以访问,localhost:8080/工程名 可以访问 但是为啥去掉8080就不能访问了 404 错误?我不知道是不是worker.properties 下的JDK的原因,我直接用的myeclipse下的 ,环境变量也用的是这个JDK ,但我想404这应该是路径问题,只是一直不知道那里出错了。如果大神看到了。稍微给几点option
非常感谢,这是我第一次整合。可能不懂,不要在意呀~
30楼 婪啬 2012-12-04 16:14发表 [回复]
httpd.exe: Syntax error on line 488 of E:/Apache2.2/conf/httpd.conf: 
Cannot load E:/Apache2.2/modules/mod_jk.so into server: \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xb3\xcc\xd0\xf2\xa1\xa3

请问这个问题怎么解决?

Re: lifetragedy 2012-12-05 11:58发表 [回复]
回复canom:请仔细看清我上两次的回贴,MOD_JK与你的HTTPD不对应,你必须要用mod_jk-1.2.31-httpd-2.2.X
Re: lifetragedy 2012-12-04 16:35发表 [回复]
回复canom:你的APACHE的具体版本?几位的?

Re: lifetragedy 2012-12-05 10:30发表 [回复]
回复lifetragedy:apache HTTP ServerV2.2.17绿色版.RAR
mod_jk.so 使用的是
tomcat-connectors-1.2.37-windows-i386-httpd-2.0.x.zip

apache 2.2.x, mod_jk 2.0.x...

用我资源里的MOD_JK试试吧,这个是MOD_JK不兼容

Re: 婪啬 2012-12-05 09:46发表 [回复]
回复lifetragedy:APACHE使用的是
apache HTTP ServerV2.2.17绿色版.RAR
mod_jk.so 使用的是
tomcat-connectors-1.2.37-windows-i386-httpd-2.0.x.zip
中的

Re: lifetragedy 2012-12-05 11:57发表 [回复]
回复canom:你的mod_jk是for apache 2.0人,而你的apache是2.2.x,不兼容

Re: 婪啬 2012-12-05 14:13发表 [回复]
回复lifetragedy:谢谢,搞定了,没有问题了
29楼 aaronwong2035 2012-12-04 09:55发表 [回复]
菜鸟学习中!谢谢博主的分享!
28楼 wswhhh 2012-12-03 18:08发表 [回复]
虽然基本都懂,但是还真没有系统得学习过,受益匪浅,谢 博主

Re: wswhhh 2012-12-03 18:08发表 [回复]
回复wswhhh:收藏了一篇篇看
27楼 hehongwei44 2012-12-02 12:19发表 [回复]
非常的实用
26楼 cgsyck 2012-11-29 20:05发表 [回复]
博主 我是刚工作的 程序员 你说的那个ftp地址是什么是啊

Re: lifetragedy 2012-11-29 20:40发表 [回复]
回复cgsyck:那个是公司内的FTP,你可以自己拿 你自己的标准的WAR工程来实验

Re: cgsyck 2012-11-29 22:06发表 [回复]
回复lifetragedy:博主 好好 谢谢了
Re: cgsyck 2012-11-29 22:02发表 [回复]
回复lifetragedy:博主 我试了一下 我在www的/demo目录下放一个静态的html文件可以,然后通过8080端口访问jsp也可以 但就是链接的时候出错,
503错误
25楼 夜星云 2012-11-29 19:59发表 [回复]
楼主写的文章确实不错,文笔也很好,我现在也非常想写一些文章,但是就是不知道改怎么写。自己知道的,就是说不明白!希望楼主指教
24楼 zrarzw 2012-11-29 10:01发表 [回复]
博主 您好 我按照你的方法做了一遍 用了自己的一个WAR工程做验证 发现有个小问题 我每次直接访问apache http://localhost/demoweb/这样的话就会出现登陆超时不能跳转到登陆页面,如果我访问http://localhost:8080/demoweb/这样的话是没问题的可以直接到登陆页面这个是发布在TOMCAT底下的。希望博主能给我解答下,感激不尽。

Re: lifetragedy 2012-11-29 10:14发表 [回复]
回复zrarzw:apache下的和tomcat下的映射有问题,你可以这样,先在apache下建立一个demoweb,然后在下面放一个index.html,里面内容随便,先看看这个demoweb可不可以访问再说

Re: zrarzw 2012-11-29 10:51发表 [回复]
回复lifetragedy:我贴下我的映射吧tomcat底下的 
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
----------------------------------------------------------------------------
apache底下的workers.tomcat_home=D:\steup\apache-tomcat_2 
workers.java_home=D:/steup/jdk1.6
ps=/
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
Re: zrarzw 2012-11-29 10:41发表 [回复]
回复lifetragedy:可以的我试了下直接放个HTML是能访问的

Re: lifetragedy 2012-11-29 12:53发表 [回复]
回复zrarzw:希望经过这个过程,你对所谓的静态WEB与动态WEB相分离有所领悟。

目前商用的WEB服务器还有sun的iplanet和ibm的http server,配置会有所不同,但原理是一样的。

Re: lifetragedy 2012-11-29 10:59发表 [回复]
回复zrarzw:你的JKMOUNT是怎么做的?你在APACHE里的HTTPD.CONF是怎么做的,你发到我的收件箱吧,就是博客里的收件箱,我看看

Re: zrarzw 2012-11-29 12:52发表 [回复]
回复lifetragedy:感谢博主的耐心指导 按照你给我的建议 现在成功了 万分感谢 博主是个好人
Re: zrarzw 2012-11-29 12:07发表 [回复]
回复lifetragedy:发给你了麻烦你看下
23楼 paullmq 2012-11-28 12:51发表 [回复]
强大,膜拜!
22楼 lihongjun0315 2012-11-28 10:47发表 [回复]
博主你好,还是不清楚Network Momain;Server Name;Administrator's Email Address这个三个框该填写什么,我看12楼您做的答复,不懂,我现在用的电脑是家里的,网络环境是电信3G的无线网卡!Network Domain是不是可以随便填一个呢,Server Name您说是填写计算机名的我的计算机名就是LiuZhongWen!是不是这样的,能讲讲这三个框的具体作用吗?呵呵,工作两年多了!

Re: lifetragedy 2012-11-28 11:29发表 [回复]
回复lihongjun0315:所以在apache里填的server name就是你的机器名,EMAIL BOX可以任意填,你也可以填你自己的私人邮箱地址。
Re: lifetragedy 2012-11-28 11:25发表 [回复]
回复lihongjun0315:证书是跟着servername的走的,而你的server name的解析是DNS。
为什么跟server name走,因为计算机的ip是变的。
因此:

单机环境下: servername与windows_install-folder/system32/etc/driver/hosts文件里的server name前的ip要对应如:
你家的网给你这机器目前的ip是:192.168.0.6,那你在hosts文件里的对应关系就是是:
192.168.0.6 yourservername
如果下次开机,ip变了就自己再换一下前面这个IP。

如果你的电脑在公司局域网,那你的servername就是被dns解析的,所以这时你的servername与你的ip就是“绑定”的。

证书必须跟着server name走,当然你在生成证书时这个common name填你当前的ip也行,但一旦你证书里的ip和你机器上的IP不对应时,https就失去了效应。

相当于A和B两个人,A有一张大学毕业证书,B拿 去借了用,人家一看脸:你不是A吗,冒充的?

懂了吧.

Re: zrarzw 2012-11-29 12:06发表 [回复]
回复lifetragedy:发给你了麻烦你看下
21楼 sells2012 2012-11-27 23:01发表 [回复]
菜鸟仰望大牛
20楼 rryqsh 2012-11-27 22:09发表 [回复]
博主非常感谢,我最近也是遇到一个类似的企业内部站点开放一部分功能至公网,一直想偷懒是不是在防火墙上做访问URL限制策略,后来看到你的文章,最终决定还是把公网服务分开部署到另外一台机器上。

虽然工作量多了很多,但是的确从安全性和合理性上看好了很多很多,这些工作都是值得的。

这次特意来对你说声谢谢。

Re: lifetragedy 2012-11-27 22:14发表 [回复]
回复rryqsh:我再写3,4天后会出一篇叫web security,这是我曾加参于一个国际组织一起制定的web security cook book的内容,我会用中文全尽可能的把重要的知识点都再重写一边,给我点时间,呵呵.
19楼 hhstuhackey 2012-11-26 16:52发表 [回复]
看来以后要多看博客了,顶撸主!
18楼 arsenic 2012-11-26 14:19发表 [回复]
workers.properties文件要放在modules目录下,放在conf下会有问题。

Re: lifetragedy 2012-11-26 14:29发表 [回复]
回复arsenic:这里得路径随便处理,没有讲究
17楼 qinboss 2012-11-23 11:53发表 [回复]
好文章,正在拷贝和学习之中,非常感谢博主!
16楼 子安 2012-11-22 13:46发表 [回复]
ControlPanel->Administrative Tools->Service,找到IISAdmin和,将它全部关闭……
这一句怎么感觉写了一半似的,是要关闭IISAdmin和W3SVC吗?

Re: lifetragedy 2012-11-22 15:05发表 [回复]
回复bon_mot:就是把IISADMIN整个服务关了,关这个服务时它会牵连到相关的服务,全部关了即可,那个和字是错打哦
Re: lifetragedy 2012-11-22 14:59发表 [回复]
回复bon_mot:你不关闭,80端口已经被IIS的相关应用占用了。。。APACHE怎么用80端口?
15楼 joy_zhao988 2012-11-22 10:35发表 [回复]
楼主很强大。非常谢谢楼主。
14楼 xiaoH1314 2012-11-21 15:33发表 [回复]
学Java的人,必须会这个Apache的配置,要不然你怎么模拟环境、搭建环境和架构环境?光会Coding是远远不够的,你将永远只配作个码农。。。嘿嘿嘿!有很多人发觉到了后面JAVA学不上去了,关键因素在于:配置。
你会配环境了,那么你就能模拟任何客户方、开发方的环境。
你会配环境了,你的代码将来上线时才能成功运行。
你会配环境了,所以整个工程的技术核心就是你。
跟着我的教程,你们将会安装和运行达近百个各种软件与配置,搞得你一股臭味一股臭味!!
你准备好了没有?
嘿嘿-来吧
13楼 liujiaoshui 2012-11-21 11:40发表 [回复]
只看第一个图便知好
12楼 chaseblack 2012-11-20 15:12发表 [回复] [引用] [举报]
楼主你好,本人是个菜鸟,刚刚接触。我想问问安装apache的时候,servername到底填什么?我是校园网

Re: lifetragedy 2012-11-20 15:29发表 [回复] [引用] [举报]
回复chaseblack:1)servername就是你的计算机名,如:abc.fudan.com,那么它的ip是10.10.122.23所以你ping abc.fudan.com就能连到这个ip。是因为你的整个网络里有一个dns服务器.
2)IP是在变的,机器名不变,所以你不能拿 ip作你的common name,一定要机器名,因为dns服务器就是拿 机器名和mac地址去bind的。
3)但是,如果当你是脱机时谁来解析你的机器名即我怎么知道abc.fudan.com现在是什么IP?
4)解决上述问题就是在你的windows安装目录的/system32/drivers/etc/hosts文件中用文本文件打开,把里面的127.0.0.1 localhost改成:
127.0.0.1 你的servername
这样,你在生成证书时填你的机器名就不会出错了
5)在连机情况 下,此时你的机器IP不是127.0.0.1了已经变成校园网IP了,因此把127.0.0.1 localhost注释掉变成#127.0.0.1 localhost,然后把你当前的IP(ipconfig/all来查看)写入你的hosts文件如你通过ipconfig/all看到你现在的ip 是192.168.0.2那你在hosts文件里就是
192.168.0.2 你的机器名

Re: chaseblack 2012-11-20 18:29发表 [回复] [引用] [举报]
回复lifetragedy:尊敬的楼主啊,你的那个ftp我访问不了呀,我打算把您的大作看完,ftp里面的cbbs和md_jk能不能发给我呀?chaseandblack@yahoo.cn,
it would be much apppriciated if receiving your help

Re: lifetragedy 2012-11-20 19:22发表 [回复] [引用] [举报]
回复chaseblack:你可以自己拿一个标准的WAR工程来做这个试验,一样的,因为这个CBBS是上一家公司给新生入职培训用的,不太好外传。
Re: chaseblack 2012-11-20 15:58发表 [回复]
回复lifetragedy:哦哦,我看了几遍好像懂了,谢谢楼主啊
时间: 2024-10-30 08:43:29

通向架构师的道路(第一天)之Apache整合Tomcat的相关文章

通向架构师的道路 第一天 Apache整合Tomcat

一.先从J2EE工程的通用架构说起 这是一个通用的Web即 B/S工程的架构,它由: ü   Web Server ü   App Server ü   DB Server 三大部分组成,其中: 2  Web Server 置于企业防火墙外,这个防火墙,大家可以认为是一 个CISCO路由器,然后在CISCO路由器上开放了两个端口为:80和443. 80端口:用于正常的http访问 443端口:用 于https访问,即如果你在ie里打入https://xxx.xxx.xx这样的地址,默认 走的是4

通向架构师的道路 第三天 apache性能调优

一.总结前一天的学习 在前两天的学习中我们知道.了解并掌握了Web Server结合App Server实现单向Https的这样的一个架构.这个架构是一个非 常基础的J2ee工程上线布署时的一种架构.在前两天的教程中,还讲述了Http服务器.App Server的最基本安全配置(包括单向 https的实现), 它只是避免了用户可以通过浏览器侵入我们的Web访问器或者能够通过Web浏览器来查询我们的Web目录结构及 其目录内的文件与相关内容,这种入侵我们把它称为: Directory traver

通向架构师的道路 第二十五天 SSH的单元测试与dbunit的整合(下)

3.4使用框架 我们准备两份测试用数据 test_del_table.xml文件 <?xml version="1.0" encoding="UTF-8"?> <Tables> <table>t_student</table> </Tables> test_insert_table.xml文件 <?xml version="1.0" encoding="UTF-8&quo

通向架构师的道路 第十六天 IBM Websphere与IBM HttpServer的集成

一.IBMWebsphere与IBMHttpServer IBM WebSphere非常强大,几乎可以和任何主流Web服务器集成.其原理和Weblogic与Apache以及tomcat与Apache的集成原理一 致,也是以plug-in(插件)的方式来做应用的. 不过我们今天要介绍的是IBM自带的HttpServer,又称IHS. IHS其实就是一个Apache,IBM拿了Apache过来进行了改造,使得它可以和它的WAS系列产品紧密结合并且可以通过WAS的Admin Console对它进行可视

通向架构师的道路(第十六天)IBM Websphere与IBM HttpServer的集成

一.IBMWebsphere与IBMHttpServer IBM WebSphere非常强大,几乎可以和任何主流Web服务器集成.其原理和Weblogic与Apache以及tomcat与Apache的集成原理一致,也是以plug-in(插件)的方式来做应用的. 不过我们今天要介绍的是IBM自带的HttpServer,又称IHS. IHS其实就是一个Apache,IBM拿了Apache过来进行了改造,使得它可以和它的WAS系列产品紧密结合并且可以通过WAS的Admin Console对它进行可视化

通向架构师的道路(第二十七天)IBM网格计算与企业批处理任务架构

一.批处理 我们在一些项目中如:银行.保险.零商业门店系统中的对帐.结帐.核算.日结等操作中经常会碰到一些"批处理"作业. 这些批处理经常会涉及到一些大数据处理,同时处理一批增.删.改.查等SQL,往往涉及到好几张表,这边取点数据那边写点数据,运行一些存储过程等. 批处理往往耗时.耗资源,往往还会用到多线程去设计程序代码,有时处理不好还会碰到内存泄漏.溢出.不够.CPU占用高达99%,服务器被严重堵塞等现象. 笔者曾经经历过一个批处理的3次优化,该批处理笔者按照数据库连接池的原理实现了

通向架构师的道路 第二十七天 IBM网格计算与企业批处理任务架构

一.批处理 我们在一些项目中如:银行.保险.零商业门店系统中的对帐.结帐.核算.日结等操作中经常会碰到一 些"批处理"作业. 这些批处理经常会涉及到一些大数据处理,同时处理一批增.删.改.查等SQL,往往涉及到好 几张表,这边取点数据那边写点数据,运行一些存储过程等. 批处理往往耗时.耗资源,往往还会用到多线程去设计程 序代码,有时处理不好还会碰到内存泄漏.溢出.不够.CPU占用高达99%,服务器被严重堵塞等现象. 笔者曾经经历过 一个批处理的3次优化,该批处理笔者按照数据库连接池的原

通向架构师的道路(第八天)之weblogic与apache的整合与调优

一.BEAWeblogic的历史 BEA WebLogic是用于开发.集成.部署和管理大型分布式Web应用. 网络应用和数据库应  用的Java应用服务器.将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的  开发.集成.部署和管理之中.  BEA WebLogic Server拥有处理关键Web应用系统问题所需的性能 .可扩展性和高可用性.  与BEA WebLogic Commerce ServerTM配合使用, BEA WebLogicServer可为部署适

通向架构师的道路 第十八天 万能框架Spring(一)

前一阵列刚换了个新的工作环境,然后自己的baby也刚出生,一直没有时间去做工作以后的其它事了,担搁了一段日子. 今天儿子满一周了,我内人她家帮着照顾着,总算我可以喘口气休息一下,因此决定将这个系列的博文继续下去,同时也将 此篇献给我刚出生一周的儿子和幸苦了10个月的爱人. 二.基本概念 Spring,作为一个流行框架它给我们在日常工程中的框架搭建提供了太多的便利了,它就像一个骨架一样,你可以在上面自 己去塑出肌肤与血肉并赋于它灵魂. 从今天开始我们将要连续几天基于Spring的基础上来讲软件开发