??xml version="1.0" encoding="utf-8" standalone="yes"?>精品一区二区三区在线观看,日本一二三区在线视频,一区二区日韩欧美http://www.aygfsteel.com/J2EEHOME/archive/2009/08/04/289826.htmlJ2EE Home工作?/dc:creator>J2EE Home工作?/author>Tue, 04 Aug 2009 10:32:00 GMThttp://www.aygfsteel.com/J2EEHOME/archive/2009/08/04/289826.htmlhttp://www.aygfsteel.com/J2EEHOME/comments/289826.htmlhttp://www.aygfsteel.com/J2EEHOME/archive/2009/08/04/289826.html#Feedback4http://www.aygfsteel.com/J2EEHOME/comments/commentRss/289826.htmlhttp://www.aygfsteel.com/J2EEHOME/services/trackbacks/289826.html      W一ơ做集群时架好后在启?span lang="EN-US">tomcat时报了一大堆错误Q内存溢出呗。我q闷了怎么?x)出现这样错误,服务器配|是4G内存Q查了一通资料,发现原来tomcat在启动时要加载已l编译好?span lang="EN-US">.class文gQ默认内存区大小?span lang="EN-US">128MQ如果文件较多,q个错误也是必然的。咋办?调内存呗Q我的几?span lang="EN-US">tomcat都是以服务Ş式安装的Q整得我要改注册表,改q个地方QHKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat62\Parameters\Java
然后调整里边JavaMs?span lang="EN-US">JavaMx的|前者表C行时加蝲的最内存,后者表C可利用的最大内存,单位?span lang="EN-US">MQ要换到十进制下L。这个问题搞了三个周才找到解军_法,W一ơ就败在此处Q?span lang="EN-US">
    W二ơ什么错误是其中一台机器上tomcat启动报错Unable to start cluster. org.apache.catalina.tribes.ChannelException: java.net.SocketException: error set ting options; No faulty members identified. Q搞了一天没有找到解军_法,弃之Q那位仁兄如果有解决办法Ƣ迎赐教Q?span lang="EN-US">
    W三ơ集方式和前两ơ没什么区别,都是采用http_proxy形式作ؓ(f)Apache?span lang="EN-US">tomcat之间q接的桥梁,q次把成功的配置详细的说明下Q?span lang="EN-US">
1.Lapache?span lang="EN-US">httpd.conf目录中以下几行的注释

#change here start
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_http_module modules/mod_proxy_http.so

 #end

# Virtual hosts

# change here two step 是L了注释,主要用于配置虚拟机文?span lang="EN-US">
Include conf/extra/httpd-vhosts.conf

2. ?span lang="EN-US">httpd.conf最下边加上q些东东

ProxyRequests Off

<proxy balancer://cluster>

BalancerMember ajp://192.168.0.22:9001 loadfactor=1 route=jvm3

BalancerMember ajp://192.168.0.22:9003 loadfactor=1 route=jvm4

BalancerMember ajp://192.168.0.22:9090 loadfactor=1 route=jvm5

</proxy>

 

ProxyRequests Off

<proxy balancer://cluster2>

BalancerMember ajp://192.168.0.1:8009 loadfactor=1 route=jvm1

</proxy>

 

ProxyRequests Off

<proxy balancer://cluster3>

BalancerMember ajp://192.168.0.1:9009 loadfactor=1 route=jvm2

</proxy>


具体什么意思就不说了,W一行表格是做集用Q下边两个仅作ؓ(f)负蝲均衡之用Q可以说没均衡负蝲Qؓ(f)啥?׃?span lang="EN-US">tomcat你做什么负载啊Q呵c重点关注这?/span>

<proxy balancer://cluster2>

Cluster2 才是关键所在,他表CZ你的站点要在那个集内做负蝲均衡或者集,我们q里用到了集和负蝲均衡Q其实就是一回事说白了,?/span> cluster 做集, cluster2 ?/span> cluster3 仅做负蝲均衡之用Q不?/span> session 复制和绘M持?/span>

2 下边我们看下 extra 目录?/span> httpd-vhosts.conf 文g的修改吧

以上边说?/span> cluster,cluster2,cluster3 Z各配|一个虚拟机

<VirtualHost *:80>

        ServerAdmin cxccma@163.com

        ServerName *****.com

        ServerAlias www.*****.com

         ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On

         ProxyPassReverse / balancer://cluster/

</VirtualHost>

<VirtualHost *:80>

         ServerAdmin cxccma@163.com

         ServerName *****.cn

         ServerAlias www. *****.cn

         ProxyPass / balancer://cluster2/

         ProxyPassReverse / balancer://cluster2/

</VirtualHost>

<VirtualHost *:80>

         ServerAdmin cxccma@163.com

         ServerName *****.com

         ServerAlias www. *****.com

         ProxyPass / balancer://cluster3/

         ProxyPassReverse / balancer://cluster3/

</VirtualHost>

以上明白了,是说是三个站点分别在不同的集内,Z么要q样做?主要是因为我们前期用的是 tomcat5.5 版本的,后期开发中友用C 6.x 版本的,所以整了两个群集以兼容前期和后期的站点Q当然如果你需要在 cluster2, 或?/span> cluster3 中再加一?/span> tomcat 做负载均衡用 ,OK, 很简单,直接复制下就可以

3.apache 说完了,接下来说?/span> tomcat ?/span>

Tomcat 中不用做什么大的改动,首先?/span> server.xml 文g中部|你的虚拟主机啊

<Host name="www.******.com" appBase="webapps"

       unpackWARs="true" autoDeploy="true"

       xmlValidation="false" xmlNamespaceAware="false">

               <Context path="" docBase="D:\lejie"

         debug= "0" reloadable="false" crossContext="false" verbosity="DEBUG">

     </Context>

</Host>

OK Q如果需要做全局集群Q那׃?/span> content.xml 文g?/span> Context 元素Q加上这句就?/span>

distributable="true"

或者在单独的文件中?/span> web.xml 文g中加入这句话

< distributable/>

到这应该都说完了吧,谈下个h的想法:(x) apache ?/span> tomcat 有三U连接方法:(x) JK Q?/span> mod_proxy,http_proxy Q前两者的配置都是繁琐,在可l护性和模块化上也没什么优点,我一直用W三U连接方法,采用 AJP 直连Q?/span> AJP1.3 在连接上表现出明昄优点Q所以我也徏议采用第三种q接?/span>

是一个工作ȝ吧,Ƣ迎各位不吝赐教Q如果有什么疑问请通过以下方式联系本h



]]>
MySQL查询优化讲之管理员的优化措?/title><link>http://www.aygfsteel.com/J2EEHOME/archive/2009/07/09/286012.html</link><dc:creator>J2EE Home工作?/dc:creator><author>J2EE Home工作?/author><pubDate>Thu, 09 Jul 2009 01:48:00 GMT</pubDate><guid>http://www.aygfsteel.com/J2EEHOME/archive/2009/07/09/286012.html</guid><wfw:comment>http://www.aygfsteel.com/J2EEHOME/comments/286012.html</wfw:comment><comments>http://www.aygfsteel.com/J2EEHOME/archive/2009/07/09/286012.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/J2EEHOME/comments/commentRss/286012.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/J2EEHOME/services/trackbacks/286012.html</trackback:ping><description><![CDATA[MySQL用户能够执行的。可以控制MySQL服务器或计算机的pȝ理员能够执行额外的优化措施。例如,有些服务器参数附属于查询处理q程Qƈ且是可以调整的,而且某些g配置因素Ҏ(gu)询处理速度有直接的影响。在很多情况下,q些优化措施提高了整个服务器的性能Q因此可以让所有的MySQL用户都受益?br /> <br />   一般来_(d)当你执行理员优化的时候,应该紧记以下规则Q?br /> <br />   · 讉K内存中的数据快于讉K盘上的数据?br /> <br />   · 量把数据保存在内存中可以减磁盘操作?br /> <br />   · 保留索引中的信息比保留数据记录的内容更重要?br /> <br />   我们在后面将讨论如何应用q些规则?br /> <br />   增加服务器缓存的大小。服务器拥有很多参数Q系l变量)Q你可以改变q些参数来媄响服务器的操作。其中的几个参数直接地媄响查询处理的速度。你可以改变的最重要的参数是数据表缓存的大小和存储引擎用于缓冲烦引操作信息的~存大小。如果你拥有可用的内存,把它分配给服务器的~存Q以允许信息存储在内存中q减磁盘操作。这?x)有很好的效果,因?f)讉K内存中的信息比从盘d信息的速度快得多?br /> <br />   · 当服务器打开表文件的时候,它试图保持这些文件的打开状态,以减打开文g操作的数量。ؓ(f)了实现这L(fng)功能Q它在表~存中维护打开文g的信息。table_cachepȝ变量控制着q个~存的大。如果服务器讉K了大量的表,表缓存就?x)被填满Qƈ且服务器?x)关闭那些有一D|间没有用的表,为打开新表留出I间。你可以通过查Opened_tables状态指C器来访问表~存的效果:(x)<br /> <br /> SHOW STATUS LIKE ’Opened_tables’;<br /> <br />   Opened_tables昄了某个数据表必须打开的次敎ͼ因ؓ(f)它还没有打开Q。这个g昄为mysqladmin状态命令的输出信息中的Opens倹{如果这个数字是E_的或~慢增长Q那么它的设|可能是正确的。如果这个数字增长得很快Q就意味着q个~存太小了,必须l常关闭数据表来为打开其它的数据表留出I间。如果你拥有文g描述信息Q增加表~存大小减数据表打开操作的数量?br /> <br />   · MyISAM存储引擎使用键缓冲来保持与烦引相关的操作的烦引信息块。它的大是由key_buffer_sizepȝ变量控制的。这个D大,MySQL׃ơ性在内存中保持更多的索引信息块,可以增加在内存中Q而不用从盘上读取新的信息块Q找到键值的可能性。键~存的默认大是8MB。如果你拥有很多的内存,q是一个很保守的|你可以直接增加它的大,q且?x)看到基于烦引的索、烦引的建立和修Ҏ(gu)作的性能有很大改善?br /> <br />   在MySQL 4.1以上版本中,你可以ؓ(f)MyISAM数据表徏立附加的键缓存,q指定某些表使用它们。这样可以帮助提高这些数据表上的查询处理速度?br /> <br />   · InnoDB和BDB引擎拥有自己的用于缓冲数据和索引值的~存。它们的大小是由innodb_buffer_pool_size和bdb_cache_size变量控制的。InnoDB引擎q维护了一个日志缓册Ӏinnodb_log_buffer_size变量可以控制它的大小?br /> <br />   · 另一个专用的~存是查询缓存,我们?使用查询~存"部分中解释?br /> <br />   当你改变q些参数值的时候,应该遵@下面一些原则:(x)<br /> <br />   · 每次只改变一个参数。如果你一ơ改变多个相互独立的变量Q那么就很难评估每种改变的效果了?br /> <br />   · 逐渐地增加系l变量倹{根据理论,数量多Q性能好Q但是如果你使某个变量变得太大了Q有可能造成pȝ资源匮乏Q导致逆向效果Q降低速度?br /> <br />   · 不要在运行业务MySQL数据库的服务器上做调整参数的实验Q最好徏立一个独立的试服务器?br /> <br />   · Z大致了解哪种参数变量可能适合自己的系l,你可以查看MySQL发布文档中包含的<a class="bluekey" target="_blank" rel="nofollow">my</a>-small.cnf、my-medium.cnf、my-large.cnf和my-huge.cnf选项文gQ在Unixpȝ上,你可以在源发布文件的支持文g目录和二q制发布文g的共享目录L到这些文件。在Windows上,它们位于基本的安装目录中Q其扩展名可能是.<a class="bluekey" target="_blank" rel="nofollow">ini</a>Q。这些文件可能让你知道最好改变服务器上的那些参数以适应不同的用层ơ,q且些参数提供了一些典型倹{?br /> <br />   用于提高服务器的操作性能的其它一些策略还包括Q?br /> <br />   止不需要的存储引擎。服务器不会(x)为禁止的引擎分配M内存Q因此我们可以利用这一炏V如果从源文件徏立MySQLQ那么在配置的时候,大多数存储引擎就可以被排除在服务器之外。对于那些包含在服务器中的引擎来_(d)使用适当?a class="bluekey" target="_blank" rel="nofollow">启动选项</a>可以在运行时止其中的大多数?br /> 保持授权表许可的单性。尽服务器在内存中~存了授权表内容Q但是如果你在tables_priv或columns_priv表中有一些数据行的话Q服务器必Mؓ(f)每个查询语句查表层次和列层次的权限。如果这些表是空的,那么服务器就能优化自q权限查过E,略过q些层次?br /> <br />   如果你从源文件徏立MySQLQ那么就把它配置Z用静态类库,而不要用共享类库。用共享类库的动态二q制文g节约盘I间Q然而静态二q制文g速度更快。但是,如果你用了用户自定义函敎ͼUDFQ机Ӟ那么有些pȝ要求使用动态链接。在q类pȝ上,静态二q制文g不能工作?br /> <br />   <strong>使用MyISAM键缓?/strong><br /> <br />   当MySQL执行某个利用了MyISAM数据表烦引的语句的时候,它会(x)使用键缓存来保持索引倹{这U缓存减了盘I(y)/OQ如果在~存中找C某个数据表需要的键|׃需要再ơ从盘中读取。不q的是,q种键缓存是有限的,q且在默认情况下Q它是所有的MyISAM数据表共享用的。如果在键缓存中没有扑ֈ键值ƈ且键~存是满的,争用会(x)DQ必M弃缓存中的某些|为新值留出空间。如果下ơ需要那些已l被丢弃的|必dơ从盘上读取?br /> <br />   如果你很倚重MyISAM数据表,那么把它的键保存在内存中效果?x)很好,但是~存中的争用却会(x)D相反的效果。从同一张表或不同的表读取数据都可能引v争用。你可以通过把键~存讄成以保存某个特定数据表的全部烦引,从而避免同一张数据表的争用,但是其它数据表的键仍焉要争用缓存空间?br /> <br />   MySQL 4.1以上版本个问题提供了一U解x案:(x)它支持我们徏立多个键~存Qƈ允许我们把某张数据表的烦引指定ƈ且预先装入某个缓存。如果你的数据表使用得很频繁Qƈ且你有够的内存Q能够把它的索引载入~存中,那么q种操作是有用的。这U能力允怽同时避免同一张表和不同的表的争用Q徏立一个够大的缓存,让它保存数据表的全部索引Qƈ且指定该~存专门用于那张数据表。在键被载入~存之后Q不在需要磁盘I(y)/O操作。同Ӟ键值永q不?x)被丢弃Q对数据表的键的查看操作可以在内存中完成?br /> <br />   下面的例子显CZ如何为sampdb数据库的member数据表徏立一个键~存Q该~存的名U是member_cacheQ大ؓ(f)1MB。执行这些指令的时候,你必LQSUPERQ权限?br /> <br />   1.建立一个够容Ux据表索引的独立的~存Q?br /> <br /> mysql> SET GLOBAL member_cache.key_buffer_size = 1024*1024;<br /> <br />   2.l数据表指定键缓存:(x)<br /> <br /> mysql> CACHE INDEX member IN member_cache;<br /> +---------------+--------------------+----------+----------+<br /> | Table | <a class="bluekey" target="_blank" rel="nofollow">Op</a> | Msg_type | Msg_text |<br /> +---------------+--------------------+----------+----------+<br /> | sampdb.member | assign_to_keycache | status | OK |<br /> +---------------+--------------------+----------+----------+<br /> <br />   3.把数据表索引预先d它的键缓存中Q?br /> <br /> mysql> LOAD INDEX INTO CACHE member;<br /> +---------------+--------------+----------+----------+<br /> | Table | Op | Msg_type | Msg_text |<br /> +---------------+--------------+----------+----------+<br /> | sampdb.member | preload_keys | status | OK |+---------------+--------------+----------+----------+<br /> <br />   如果你希望把其它的数据表载入同一个缓存中Q或者ؓ(f)其它的数据表建立键缓存,上面的操作就_了?br /> <div id="wmqeeuq" class="guanggao"></div> <div id="wmqeeuq" class="guanggao"></div>   <strong>使用查询~存</strong><br /> <br />   MySQL服务器可以用查询缓存来提高那些重复执行的SELECT语句的处理速度。它Ҏ(gu)能的提高通常都是惊h的。查询缓存的工作方式如下所C:(x)<br /> <br />   · W一ơ执行某条SELECT语句的时候,服务器记住该查询的文本内容和它返回的l果?br /> <br />   · 服务器下一ơ碰到这个语句的时候,它不?x)再ơ执行该语句。作Z替,它直接从查询~存中的得到l果q把l果q回l客L(fng)?br /> <br />   · 查询~存是基于服务器所接收到的查询字符串的文本内容的。如果某些查询的文本完全相同Q那些它?yu)p些查询是相同的。如果某些查询的字符不同Q或者来自那些用了不同的字W集或通讯协议的客L(fng)Q那么它?x)认些查询是不同的。同P如果某些查询采用其它的功能相当、但是实际上没有指向相同的数据表Q例如引用了不同的数据库中的同名数据表)Q那么它们也是不同的?br /> <br />   · 当数据表被更C之后Q涉?qing)到该数据表的Q何缓存查询都变成无效的,q且?x)被丢弃。这可以防止服务器返回过期的l果?br /> <br />   在默认情况下QMySQLҎ(gu)询缓存的支持是内建的。如果你不希望用这U缓存,q且想避免它所D的性能开销Q可以?-without-query-cache选项来运行配|脚本徏立服务器?br /> <br />   如果需要检某个服务器是否支持查询~存Q可以检查它的have_query_cachepȝ变量Q?br /> <br /> mysql> SHOW VARIABLES LIKE ’have_query_cache’;<br /> +------------------+-------+<br /> | Variable_name | Value |<br /> +------------------+-------+<br /> | have_query_cache | YES |<br /> +------------------+-------+<br /> <br />   对于那些支持查询~存的服务器来说Q缓存的操作是基于三个系l变量值的Q?br /> <br />   · query_cache_type军_查询~存的操作模式。下表显CZ可以使用的模式|(x)<br /> <br /> <table cellspacing="0" cellpadding="2" width="90%" align="center" border="1"> <tbody> <tr> <td>模式 </td> <td>含义 </td> </tr> <tr> <td>0 </td> <td>不要~存查询l果或检索缓存的l果?</td> </tr> <tr> <td>1 </td> <td>~存查询Q除非它们以SELECT SQL_NO_CACHE开头?</td> </tr> <tr> <td>2 </td> <td>Ҏ(gu)需要只~存那些以SELECT SQL_CACHE开头的查询?</td> </tr> </tbody> </table> <p><br />   · query_cache_size军_分配l缓存的内存数量Q单位是字节?br /> <br />   · query_cache_limit讄被缓存的最大结果集大小Q比q个值大的查询结果不?x)被~存?br /> <br />   例如Qؓ(f)了激zL询缓存ƈ为它分配16MB内存Q在配置文g中用下面的讄Q?br /> <br /> [mysqld]<br /> query_cache_type=1<br /> query_cache_size=16M<br /> <br />   即query_cache_type的D|ؓ(f)Ӟquery_cache_size指定内存数量也会(x)被分配。ؓ(f)了避免浪费内存,只有在希望激zȝ存的时候才把大设|成大于零。同Ӟ即query_cache_type不ؓ(f)Ӟ查询~存的大设|ؓ(f)零也?x)禁用缓存?br /> <br />   使用了查询缓存的独立客户端会(x)在服务器的默认缓存模式状态下操作。客L(fng)可以使用下面的语句改变自q查询的默认缓存模式:(x)<br /> <br /> SET query_cache_type = val;<br /> <br />   其中的val可以???Q它的意义与讄服务器启动时的query_cache_type变量的意义是相同的。在SET语句中,OFF、ON和DEMANDq些W号g0??对应?br /> <br />   客户端还可以通过在SELECT关键字后天添加调节符来控制个别查询的~存操作。如果缓存模式是ON或DEMANDQ那么SELECT SQL_CACHE语句?x)让查询l果被缓存。SELECT SQL_NO_CACHE语句?x)查询l果不被~存?br /> <br />   如果某些查询从经常改变的数据表中索信息,那么抑止对这些查询的~存操作是有用的。在q种情况下,~存未必有多大用处。假设你把Web服务器请求的日志存储在MySQL数据表中Q同时周期性地q行该数据表上的一l统计查询。对于很J忙的Web服务器来_(d)?x)频J地出现新行插入该数据表的操作,因此该数据表的Q何缓存了的查询结果很快就变成无效的了。其含义是,管你周期性地提交l计查询Q但是查询缓存可能对q些查询没有什么h(hun)倹{在q种情况下,最好用SQL_NO_CACHE调节W告诉服务器不要~存q些查询的结果?</p> <p>  <strong>g问题</strong><br /> <br />   本文前面的部分中讨论的帮助你提高服务器性能的技术是没有考虑g配置的。你当然可以通过使用更好的硬件来让服务器q行地更快。但是ƈ非所有的与硬件相关的改变都有相同的h(hun)倹{当我们评估哪些g提高了性能的时候,最重要的原则与调整服务器参数的原则是相同的Q尽可能地把最多的信息攑֜最快的存储中,q让q些信息可能地保持在该存储中?br /> <br />   你可以改变几U硬仉|来提升服务器的性能Q?br /> <br />   在计机上安装更多的内存。这可以让你把服务器的缓存和~冲区大值配|成更大的,从而数据保存在内存中的时间更长,从磁盘上d信息的需要更?br /> <br />   重新配置pȝQ如果你拥有_的内存,能够在内存文件系l中执行全部的交换操作,那么删除所有的盘交换讑֤。否则,即你拥有够的用于交换操作的RAMQ某些系l仍然会(x)跟磁盘进行交换操作?br /> <br />   增加更快的磁盘以改善I/O{待旉。在q种情况下,寻道旉是有代表性的主要的性能军_因素。横向移动磁头的速度比较慢,在磁头定位以后,从磁道上d信息块的速度相对较快。但是,如果需要选择是添加更多的内存q是更快的磁盘,那么最好选择d更多的内存。内存L比磁盘快Q而且d内存可以让你使用更大的缓存,从而减磁盘活动?br /> <br />   通过在物理设备上划分盘?gu)zd来获取ƈ行操作的优势。如果你可以在多个物理设备上划分L作和写操作,那么光度׃(x)比从同一个设备读写要快一些。例如,如果你把数据库存储在一个设备上Q把日志存储在另一个设备上Q那么同时向两个讑֤写入信息的速度比数据库和日志׃n同一个设备的速度要快。请注意Q用同一个物理设备上的不同分Z是q行操作。这是没有好处的Q因为它们仍焉要争用相同的物理资源Q磁_(d)?br /> <br />   在把数据重新部v到另外一个设备之前,你要保自己知道pȝ的负载状c如果在某个特定的物理设备上正在q行一些重要的业务Q那么把数据库放在该讑֤上有可能使性能更差。例如,如果你正在处理大量的Web业务Q同时把数据库移动到Web服务器文档目录所在的讑֤上,可能感觉不CQ何优ѝ?br /> <br />   使用RAID讑֤可以让你获取q行操作的优ѝ?br /> <br />   使用多处理器g。对于类似MySQL服务器的多线E应用程序来_(d)多处理器g可以同时执行多个U程?/p> <img src ="http://www.aygfsteel.com/J2EEHOME/aggbug/286012.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/J2EEHOME/" target="_blank">J2EE Home工作?/a> 2009-07-09 09:48 <a href="http://www.aygfsteel.com/J2EEHOME/archive/2009/07/09/286012.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windowsq_上的Apache+Tomcat配置指南http://www.aygfsteel.com/J2EEHOME/archive/2009/06/30/284733.htmlJ2EE Home工作?/dc:creator>J2EE Home工作?/author>Tue, 30 Jun 2009 02:51:00 GMThttp://www.aygfsteel.com/J2EEHOME/archive/2009/06/30/284733.htmlhttp://www.aygfsteel.com/J2EEHOME/comments/284733.htmlhttp://www.aygfsteel.com/J2EEHOME/archive/2009/06/30/284733.html#Feedback0http://www.aygfsteel.com/J2EEHOME/comments/commentRss/284733.htmlhttp://www.aygfsteel.com/J2EEHOME/services/trackbacks/284733.html本文主要讲述如何在windowsq_上搭Z个用于javaq_的web服务器过E?br />     整个q程中用到的软g包括QApache的http服务器、JDK6、Tomcat 6、mod_jk。实现的目标是配|完成一个由Apache担当80端口的web服务器,Tomcat担QJava的Web应用容器Q两者通过mod_jk的连接完成对外提供服务的工作。现在我们开始配|过E:(x)
    1、下载Apache的http服务?br />     下蝲地址Qhttp://httpd.apache.orgQ在本文~写Ӟhttpd的服务器当前最新发行版本是2.2.11Q我们称2.2版本Q,我们选在windowsq_的二q制版本下蝲Q我们最好选择Win32 Binary including OpenSSL 0.9.8i (MSI Installer) Q因个版本只是SSLQ也怽来需要提供SSL的功能,所以这里有备无(zhn)?br />     2、安装Apache的http服务?br />     q个步骤的Q务非常简单,对于windowsq_Q你只需要按照安装向g步一步完成安装Q务就可以了,在过E你可以?x)被要求填写一些信息,比如服务器的域名Q你可以Ҏ(gu)你的服务器实际的域名填写Q如果你只是试Qƈ没有甌q域名的话,你可以随便填写一个)Q管理员的电(sh)子邮件等{。在q个q程中记住你的Y件的安装目录Q接下来的步骤中我们会(x)用到q个目录。我们将q个安装q程中的每一步截图记录如下:(x)

 

 

 





    3、下载安装JDK6
    下蝲地址Qhttp://java.sun.com/javase/downloads/?intcmp=1281Q下载Java SE Development Kit (JDK) 6 Update 11?br />     安装JDK的过E非常简单,你只需要依ơ下一步就可以完成d了,安装q程注意选择安装目录Q我们这里假讑֮装目录ؓ(f)d:\java\jdk1.6?br />     4、下载Tomcat 6
    下蝲地址Qhttp://tomcat.apache.org/download-60.cgiQ选择windowsq_的tomcat软gQ你可以选在Windows Service Installer 版本?br />     5、安装Tomcat 6
    q个q程中也是近乎傻瓜型的,q里Tomcat 6的安装过E截囑֦下:(x)

 

 

 

 

 




    6、下载和配置mod_jk
    下蝲地址Qhttp://apache.mirror.phpchina.com/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.27/mod_jk-1.2.27-httpd-2.2.10.soQ这里大安要注意一点,你应该更具你的apache的版本来选择mod_jk的版本。当你现在so文g之后Q接下来的Q务就是要so模块配置到apache服务器当中去?br />     首先mod_jk-1.2.27-httpd-2.2.10.so复制到apache的安装目录中modules目录中,你会(x)在这个目录(C:\Program Files\Apache Software Foundation\Apache2.2\modulesQ中看到很多的so文g。然后打开apache的配|文ӞC:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.confQ,在其中找到包含LoadModule字样的内容,在这些内容的下方d一个新的LoadModuleQ其目的是ؓ(f)了给Apache增加一个新的模块功能,q个模块是mod_jkQ它的目的是Z让apache能够和tomcatq行协作。在LoadModule下方d如下一行内容:(x)
    LoadModule   jk_module   modules/mod_jk-1.2.27-httpd-2.2.10.so
    mod_jk模块要正工作,必须知道被它操控的tomcat服务器在哪里Q而这个内定w要被配置在另外一个文件中Q现在我们将q个文g命名为workers.propertiesQ将q个文g攑֜httpd.conf相同的地方(当然你可以放在Q何你希望的地方)Q文件中的内容如下:(x)
ps=\
worker.list=ojava
worker.ojava.port=8009
worker.ojava.type=ajp13
worker.ojava.host=localhost
worker.ojava.lbfactor=1
    有了q个配置文g之后Q我们必要告诉mod_jkq个文g的存在,所以需要再ơ打开httpd.conf文gQ在我们刚刚d的LoadModuleq一行的下方d如下一行内容:(x)
    JkworkersFile  conf/workers.properties
    好了Q现在你已经完成了apache和tomcat的通讯方式和参数的配置Q接下来需要做的就是配|哪个web应用需要由apache转交ltomcatq行处理Q我们以虚拟LZQ?br /> 我们为apache增加新的虚拟L的配|,首先修改httpd.conf的配|,扑ֈ#Include conf/extra/httpd-vhosts.confQ将q一行前面的#去除掉,让这一行的配置生效。然后我们找到配|文件中如下的内容:(x)
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>
其修改为如下的内容Q?br /> <Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
其目的是Zlapache配置虚拟LQ指定其他目录作为web|站的目录时产生无权讉K的错误?br />     接着打开C:\Program Files\Apache Software Foundation\Apache2.2\conf\extra\httpd-vhosts.confQ去掉里面已l配|的虚拟L部分的内容,如下所C:(x)
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.ojava.net
    DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/docs/dummy-host.ojava.net"
    ServerName dummy-host.ojava.net
    ServerAlias www.dummy-host.ojava.net
    ErrorLog "logs/dummy-host.ojava.net-error.log"
    CustomLog "logs/dummy-host.ojava.net-access.log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.ojava.net
    DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/docs/dummy-host2.ojava.net"
    ServerName dummy-host2.ojava.net
    ErrorLog "logs/dummy-host2.ojava.net-error.log"
    CustomLog "logs/dummy-host2.ojava.net-access.log" common
</VirtualHost>
d我们自己配置的信息,配置内容如下Q?br /> <VirtualHost *:80>
    ServerAdmin steven@ojava.net
    DocumentRoot "e:/ojava/web_root"
    ServerName www.ojava.net

    JkMount  /*  ojava

    ErrorLog "logs/www.ojava.net-error.log"
    CustomLog "logs/www.ojava.net-access.log" common
</VirtualHost>
到这里我们已l将对www.ojava.net域名|站的访问请求{交给了tomcatq行处理了。此时如果你需要在tomcat中进行虚拟主机的配置Q那么你可以l箋修改tomcat的配|文Ӟ如果你不需要,那么到这里,你已l完成了所以的配置q程。恭喜你Q现在重新启动apache和tomcatQ可以测试了Q成功了吗?有问题欢q交?/p>

本文转蝲http://blog.csdn.net/stevencn76/archive/2008/12/22/3584925.aspx



]]>
[转蝲]VM中Linux虚拟Z安装VMware Toolshttp://www.aygfsteel.com/J2EEHOME/archive/2009/06/27/284410.htmlJ2EE Home工作?/dc:creator>J2EE Home工作?/author>Sat, 27 Jun 2009 08:51:00 GMThttp://www.aygfsteel.com/J2EEHOME/archive/2009/06/27/284410.htmlhttp://www.aygfsteel.com/J2EEHOME/comments/284410.htmlhttp://www.aygfsteel.com/J2EEHOME/archive/2009/06/27/284410.html#Feedback0http://www.aygfsteel.com/J2EEHOME/comments/commentRss/284410.htmlhttp://www.aygfsteel.com/J2EEHOME/services/trackbacks/284410.html使用VMware 来安装Linux ,都会(x)被那个VMware-Tools弄得晕头转向。现在详l向大家介绍如何安装Linux下的VMwareTools.
1.安装工具。让虚拟行于H口状态,不要全屏Q按Ctrl+Alt让鼠标释攑և来。在VMware的菜单栏上选择"虚拟?安装虚拟机工?VM/Install VMware Tools...)"。然后切换到客户操作pȝQ即Linux?
2.挂蝲光盘。mount /dev/cdrom /mnt/cdrom
3.执行命o(h)。进入虚拟光盘,可以看到有两个文Ӟ一个是压羃包,一个ؓ(f)rpm包。直接运行rpm包安装,命o(h)行也可。rpm -Uvh VMwareTools-版本?版本?i386.rpm
4.上述操作完成后,q入/usr/bin目录Q查找vmware-config-tools.pl.扑ֈ后,q行它?/div>
5.一路YESQ直到让我们安装C~译器的时候选择NO好?/div>
6.完成配置。如果一切顺利,即会(x)出现一个界面,让你选择当前屏幕的分辨率Q当然我的kernel应ؓ(f)升C最新的版本Q会(x)有一些消息要你确认,应该直接认可以。选择一个分辨率。重新启动,卛_?/div>
 
昄输出 重定向:(x)
1.配置Linux OS的显C?其重定向到q程的X-Server?export DISPLAY=172.16.172.101:0.0,其中?72.16.172.101L上安装了Xmanagerq启动了'Xmanager - Passive'E序
 
2.在console?执行vmware-toolbox,在远EX-Server上将出现VMware Tools PropertiesH口,可以配|了...在配|中的第一标签?是关于Guest OSpȝ旉的选项,N该选项可以Guest OS与Host OS旉同步?
 
若不重新启动不要忘记卸蝲CDROM?
 
 
uzPLinux联盟
VMware Workstation 从Y盘和/?CD-ROM 直接安装未修改的操作pȝ。在构造一台虚拟机Ӟq个安装q程是第一步ƈ且也是唯一必需的一步?/div>
但是QVMware 强烈你在每一台虚拟机中完成操作系l安装之后立卛_?VMware Tools 套g。在客户操作pȝ中安?VMware Tools 非常重要。如果你不安?VMware ToolsQ虚拟机中的囑Ş环境被限制ؓ(f) VGA 模式囑Ş(640x480Q?6 ??/div>
使用 VMware ToolsQSVGA 驱动E序被安装,VMware Workstation 支持最?32 位显C和高显C分辨率Q显著提升M的图形性能?
工具包中的其他工具通过支持下面的增强,让你更方便地使用你的虚拟机。注意,只有正在q行 VMware Tools Ӟq些增强才可用?/div>
在主机和客户Z间时间同?uzPLinux联盟
注释: 只有当你在客h作系l中讄旉Z个比在主Z讄的时间更早的旉Ӟ才可以在客户和主机操作系l之间同步时间?uzPLinux联盟
自动捕获和释N标光?uzPLinux联盟
在主机和客户Z间或者从一台虚拟机到另一台虚拟机q行复制和粘贴操?uzPLinux联盟
改善的网l性能 uzPLinux联盟
VMware Tools 工具包由两个lgl成:
一个ؓ(f) VMware Workstation 虚拟囑Ş卡优化的囑Ş驱动E序。对?Linux 客户操作pȝQ它包含我们自己?XFree86 X server 版本。图形驱动程序由向导安装。安装之后,需要在重启动之后才可以使用?uzPLinux联盟
一个小的后台应用程序,允许你在虚拟Z更改配置讄。VMware Workstation 控制光标讄和可Ud讑֤的连接状态,例如软盘?CD-ROM 驱动器?span style="display: none">uzPLinux联盟
光标讄允许你在虚拟机和L囑Ş用户界面之间qxUd鼠标光标。光标设|也允许你在虚拟机和L之间以及(qing)从一台虚拟机到另一台虚拟机复制和粘贴文本缓存。注意,只有当应用程序正在运行时Q这些增强才可用?br /> 讄 VMware Tools 参数uzPLinux联盟
在一?Windows 客户操作pȝ中ؓ(f) VMware Tools 讄参数uzPLinux联盟
打开 VMware Tools。双ȝl托盘中?VMware Tools 图标?uzPLinux联盟
VMware Tools 选项卡包含有兌拟机的状态信息。单击链接按钮访?VMware 主页?uzPLinux联盟
讑֤选项卡允怽启用或禁用可Ud讑֤?你也可以?VMware Workstation 应用E序H口的设备菜单中讄q些选项? uzPLinux联盟
压羃选项?允许你从你的虚拟盘中删除未使用的磁盘块Q从而减?压羃)p拟磁盘消耗的存储I间的数量。它也会(x)重新安排你的虚拟盘Q以使它的数据块怺L?uzPLinux联盟
其他选项卡显C其他选项: uzPLinux联盟
在虚拟机和主机操作系l之间时间同步?uzPLinux联盟
注释: 只有当你在客h作系l中讄旉Z个比在主Z讄的时间更早的旉Ӟ才可以在客户和主机操作系l之间同步时间?uzPLinux联盟
在工h中显C?VMware Tools?uzPLinux联盟
在一?Linux 客户操作pȝ中ؓ(f) VMware Tools 讄参数uzPLinux联盟
打开 VMware Tools。在一个终端中q行下列命o(h): uzPLinux联盟
vmware-toolbox. uzPLinux联盟
讑֤选项卡允怽启用或禁用可Ud讑֤?你也可以?VMware Workstation 应用E序H口的设备菜单中讄q些选项? uzPLinux联盟
压羃选项?允许你从你的虚拟盘中删除未使用的磁盘块Q从而减?压羃)p拟磁盘消耗的存储I间的数量。它也会(x)重新安排你的虚拟盘Q以使它的数据块怺L?uzPLinux联盟
“选项”选项卡显C些选项: uzPLinux联盟
在虚拟机和主机操作系l之间时间同步。你可以在虚拟机和主机操作系l之间同步时间?uzPLinux联盟
注释: 只有当你在客h作系l中讄旉Z个比在主Z讄的时间更早的旉Ӟ才可以在客户和主机操作系l之间同步时间?
如果正在q行 VMware ToolsQ你可以在虚拟机和主机的应用E序之间或者在两台虚拟Z间复制和_脓(chung)文本?/div>
要进行复制和_脓(chung):
保在你的虚拟机中已l安装ƈ且启?VMware Tools?uzPLinux联盟
使用来源H口中的操作pȝ支持的方式在来源H口中选择要复制的目?uzPLinux联盟
更改光标和键盘控制到目标H口Q然后用目标窗口中的操作系l支持的方式_脓(chung)目?uzPLinux联盟
你只能复制和_脓(chung)文本Q而不是图片或者其他项目?span style="display: none">uzPLinux联盟


]]>tomcat 非root启动http://www.aygfsteel.com/J2EEHOME/archive/2009/06/27/284409.htmlJ2EE Home工作?/dc:creator>J2EE Home工作?/author>Sat, 27 Jun 2009 08:47:00 GMThttp://www.aygfsteel.com/J2EEHOME/archive/2009/06/27/284409.htmlhttp://www.aygfsteel.com/J2EEHOME/comments/284409.htmlhttp://www.aygfsteel.com/J2EEHOME/archive/2009/06/27/284409.html#Feedback0http://www.aygfsteel.com/J2EEHOME/comments/commentRss/284409.htmlhttp://www.aygfsteel.com/J2EEHOME/services/trackbacks/284409.html# addusr tomcat
# chown -R tomcat:tomcat /usr/local/tomcat
-------------------------------------
#vi /etc/rc.local
在最后加入:(x)
su - tomcat -c '/usr/local/tomcat/bin/startup.sh'
------------------------------------
REBOOT试试QJSP用ROOT启动不安全的问题解决?br />
su - tomcat -c '/usr/local/tomcat/bin/shutdown.sh' ‘tomcat停止命o(h)


]]>Tomcat 6.18 Virtual Hosthttp://www.aygfsteel.com/J2EEHOME/archive/2009/06/27/284408.htmlJ2EE Home工作?/dc:creator>J2EE Home工作?/author>Sat, 27 Jun 2009 08:46:00 GMThttp://www.aygfsteel.com/J2EEHOME/archive/2009/06/27/284408.htmlhttp://www.aygfsteel.com/J2EEHOME/comments/284408.htmlhttp://www.aygfsteel.com/J2EEHOME/archive/2009/06/27/284408.html#Feedback0http://www.aygfsteel.com/J2EEHOME/comments/commentRss/284408.htmlhttp://www.aygfsteel.com/J2EEHOME/services/trackbacks/284408.html
conf/server.xml
 
<Engine name="Catalina" defaultHost="localhost">
 
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">

</Host>

<Host name=" unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">

</Host>

<Host name="
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">

</Host>
 
 
conf/Catalina/localhost/ROOT.xml:
    <Context path="" reloadable="false" docBase="" workDir="/tmp/tomcat" />

conf/Catalina/www.host01.com/ROOT.xml
    <Context path="" reloadable="false" docBase="" workDir="/tmp/host01" />

conf/Catalina/www.host02.com/ROOT.xml
<Context path="" reloadable="false" docBase="" workDir="/tmp/host02" />
 
 
 
 
参?www.ex-parrot.com/~pete/tomcat-vhost.html


]]>Apache Java Tomcat Proxy-ajp(Linux)整合http://www.aygfsteel.com/J2EEHOME/archive/2009/06/27/284407.htmlJ2EE Home工作?/dc:creator>J2EE Home工作?/author>Sat, 27 Jun 2009 08:44:00 GMThttp://www.aygfsteel.com/J2EEHOME/archive/2009/06/27/284407.htmlhttp://www.aygfsteel.com/J2EEHOME/comments/284407.htmlhttp://www.aygfsteel.com/J2EEHOME/archive/2009/06/27/284407.html#Feedback0http://www.aygfsteel.com/J2EEHOME/comments/commentRss/284407.htmlhttp://www.aygfsteel.com/J2EEHOME/services/trackbacks/284407.html
前言Q?
安装软gQ?br /> 1. jdk-1_5_0_06-linux-i586.bin
2. httpd-2.2.0.tar.gz
3. apache-tomcat-6.0.13.tar.gz
q且攄?usr/local目录下?br />
一、安装JDK
大家从网上下载的JDK的LINUX版本一般是bin格式

1. 使bin文g可执行?
[root@localhost local]# chmod +x jdk-1_5_0_06-linux-i586.bin

2. 安装
[root@localhost loacl]# ./ jdk-1_5_0_06-linux-i586.bin

3. Z操作单,有必要ؓ(f)刚刚安装的jdk1.5.0_06建立一个JDK的同步目?
[root@localhost local]# ln -s jdk1.5.0_06 jdk

4. 讄环境变量JAVA_HOMEQ这个变量会(x)在后面的Tomcat中用刎ͼ?
[root@localhost local]# vi /etc/profile
在该文g的末֊上下面两?
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
保存退?

5. 验证该变量的讄。如果感觉安装顺利的话,可以跌此步?
[root@localhost local]# echo $JAVA_HOME
大家?x)发现返回的是空?
不要惊慌Q退出去重新dpȝ可以了
或者执行命令是环境变量立即生效
[root@localhost local]source /etc/profile
[root@localhost /]# echo $JAVA_HOME
/usr/ local /jdk
[root@localhost /]java –version
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)
如果q回q行Q就说明讄成功。至此?zhn)的JDK安装完毕?

二、安装Tomcat
Tomcat的安装比较简单,解压后运行即可?

1. 安装包拯?usr/local目录下安装,
[root@localhost local]# tar -zxvf apache-tomcat-6.0.13.tar.gz

2. 压后得到的apache-tomcat-6.0.13创徏一个名为tomcat的同步目录?
[root@localhost local]# ln -s apache-tomcat-6.0.13 tomcat

3. 讄环境变量CATALINA_HOMEQƈ验证
[root@localhost local]# vi /etc/profile
在文件最后加入如下一?
export CATALINA_HOME=/usr/local/tomcat
保存退?
验证CATALINA_HOME的过E跟上面验证JAVA_HOME的过E相同?

4. 启动q测试安装结?
[root@localhost local]# cd ./tomcat/bin
[root@localhost bin]# ./startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JAVA_HOME: /usr/java/jdk
[root@localhost bin]# netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 192.168.1.254:53 0.0.0.0:* LISTEN
tcp 0 0 192.168.2.254:53 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN
tcp 0 0 ::ffff:127.0.0.1:8005 :::* LISTEN
tcp 0 0 :::8009 :::* LISTEN
tcp 0 0 :::8080 :::* LISTEN
tcp 0 0 :::22 :::* LISTEN

port 8080 and 8009已经LISTEN?

6.打开览器,敲入L地址和端口号8080,回R
如:(x)http://192.168.1.254:8080/
如果出现如下画面则说明,安装成功?/div>
 
从http://www.apache.org的网站上下蝲apache-2.2.0的源代码。apache-2.2.0的版本做了些改动大家需要注意一下。首先apr和apr-util需要单独的安装Q还有配|文件由原来的一个变为现在的多个不过q样也好Q可以清楚的知道那部分配|在那个配置文g里方便修攏V安装步骤如下:(x)

解压apache的源代码
# tar xvjf httpd-2.2.0.tar.bz2
# cd httpd-2.2.0

安装apr
# cd srclib/apr
# ./configure --prefix=/server/soft/apr
# make
# make install

安装apr-util
# cd ../apr-util/
# ./configure --prefix=/server/soft/apr-util \
    --with-apr=/server/soft/apr
# make
# make install
# cd ../../

安装apache
# ./configure --prefix=/server/soft/apache \
    --enable-so \
    --enable-rewrite=share \
    --enable-proxy=share \
    --enable-proxy-ajp=share \
    --enable-dav=share \
    --with-apr=/server/soft/apr \
    --with-apr-util=/server/soft/apr-util/
# make
# make install

# /server/soft/apache/bin/httpd -l //看看是否有proxy-ajpq个模块
如果有这个模块证明proxy-ajp模块安装成功Q可以进行与tomcat的结合了?br />
# vi /server/soft/apache/conf/httpd.conf
?#Include conf/extra/httpd-vhosts.conf" 前面?#"L然后~辑
/server/soft/apache/conf/extra/httpd-vhosts.conf

~辑为如下的代码
<VirtualHost *:80>
    ServerAdmin admin@easyea.com
    ProxyPass / ajp://localhost:8009/
    ProxyPassReverse / ajp://localhost:8009/
    ServerName localhost
    ServerAlias www.easyea.com
    ErrorLog logs/easyea.com-error_log
    CustomLog logs/easyea.com-access_log common
</VirtualHost>

然后先启动tomcatQ再启动apache
# /server/soft/apache/bin/apachctl start
打开览器看看是否看Ctomcat的欢q页面,如果是说明apache和tomcat的结合成?


]]>
վ֩ģ壺 ɽ| | | | Ҧ| | | | | ɽ| ֹ| | | | ʡ| ٽ| | | ɽ| | ʡ| Դ| | ǿ| | üɽ| ľ| | ֦| | | | ɽ| | | | | | | | Ӣ|