1、安裝tomcat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<code>yum </code><code>install</code> <code>-y java-1.7.0-openjdk</code>
<code>tar</code> <code>zxf apache-tomcat-7.0.65.</code><code>tar</code><code>.gz -C </code><code>/usr/local/</code>
<code>cd</code> <code>/usr/local/</code>
<code>ln</code> <code>-s apache-tomcat-7.0.65/ tomcat</code>
<code>vim </code><code>/etc/profile</code><code>.d</code><code>/tomcat</code><code>.sh</code>
<code> </code><code>export</code> <code>CATALINA_HOME=</code><code>/usr/local/tomcat</code>
<code> </code><code>export</code> <code>PATH=$PATH:$CATALINA_HOME</code><code>/bin</code>
<code>. </code><code>/etc/profile</code><code>.d</code><code>/tomcat</code><code>.sh </code>
<code>vim </code><code>/etc/init</code><code>.d</code><code>/tomcat</code>
<code> </code><code>#!/bin/sh</code>
<code> </code><code># Tomcat init script for Linux.</code>
<code> </code><code>#</code>
<code> </code><code># chkconfig: 2345 96 14</code>
<code> </code><code># description: The Apache Tomcat servlet/JSP container.</code>
<code> </code><code>JAVA_OPTS=</code><code>'-Xms64m -Xmx128m'</code>
<code> </code><code>JAVA_HOME=</code><code>/usr</code>
<code> </code><code>CATALINA_HOME=</code><code>/usr/local/tomcat</code>
<code> </code><code>export</code> <code>JAVA_HOME CATALINA_HOME</code>
<code> </code><code>exec</code> <code>$CATALINA_HOME</code><code>/bin/catalina</code><code>.sh $*</code>
<code>chmod</code> <code>+x </code><code>/etc/init</code><code>.d</code><code>/tomcat</code>
<code>chkconfig --add tomcat</code>
<code>service tomcat start</code>
2、安裝Apache
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<code>yum -y </code><code>install</code> <code>gcc gcc-c++ openssl-devel pcre-devel</code>
<code>tar</code> <code>xf apr-1.4.6.</code><code>tar</code><code>.bz2</code>
<code>cd</code> <code>apr-1.4.6</code>
<code>.</code><code>/configure</code> <code>--prefix=</code><code>/usr/local/apr</code> <code>--disable-ipv6</code>
<code>make</code> <code>&& </code><code>make</code> <code>install</code>
<code>tar</code> <code>xf apr-util-1.4.1.</code><code>tar</code><code>.bz2</code>
<code>cd</code> <code>apr-util-1.4.1</code>
<code>.</code><code>/configure</code> <code>--prefix=</code><code>/usr/local/apr-util</code> <code>--with-apr=</code><code>/usr/local/apr</code>
<code>tar</code> <code>xf httpd-2.2.25.</code><code>tar</code><code>.bz2</code>
<code>cd</code> <code>httpd-2.2.25</code>
<code> </code><code>.</code><code>/configure</code> <code>\</code>
<code>--prefix=</code><code>/usr/local/apache</code> <code>\</code>
<code>--sysconfdir=</code><code>/etc/httpd</code> <code>\</code>
<code>--</code><code>enable</code><code>-so \</code>
<code>--</code><code>enable</code><code>-ssl \</code>
<code>--</code><code>enable</code><code>-cgi \</code>
<code>--</code><code>enable</code><code>-rewrite \</code>
<code>--with-zlib \</code>
<code>--with-pcre \</code>
<code>--with-apr=</code><code>/usr/local/apr</code> <code>\</code>
<code>--with-apr-util=</code><code>/usr/local/apr-util</code> <code>\</code>
<code>--</code><code>enable</code><code>-mpms-shared=all \</code>
<code>--with-mpm=event \</code>
<code>--</code><code>enable</code><code>-proxy \</code>
<code>--</code><code>enable</code><code>-proxy-http \</code>
<code>--</code><code>enable</code><code>-proxy-ajp \</code>
<code>--</code><code>enable</code><code>-proxy-balancer \</code>
<code>--</code><code>enable</code><code>-lbmethod-heartbeat \</code>
<code>--</code><code>enable</code><code>-heartbeat \</code>
<code>--</code><code>enable</code><code>-slotmem-shm \</code>
<code>--</code><code>enable</code><code>-slotmem-plain \</code>
<code>--</code><code>enable</code><code>-watchdog</code>
<code>cp</code> <code>build</code><code>/rpm/httpd</code><code>.init </code><code>/etc/init</code><code>.d</code><code>/httpd</code>
<code>vim </code><code>/etc/init</code><code>.d</code><code>/httpd</code>
<code>httpd=${HTTPD-</code><code>/usr/local/apache/bin/httpd</code><code>}</code>
<code>pidfile=${PIDFILE-</code><code>/usr/local/apache/logs/</code><code>${prog}.pid}</code>
<code>lockfile=${LOCKFILE-</code><code>/var/lock/subsys/</code><code>${prog}}</code>
<code>RETVAL=0</code>
<code># check for 1.3 configuration</code>
<code>check13 () {</code>
<code> </code><code>CONFFILE=</code><code>/etc/httpd/httpd</code><code>.conf</code>
<code> </code><code>echo</code> <code>"PATH=/usr/local/apache/bin:$PATH"</code> <code>>> </code><code>/etc/profile</code><code>.d</code><code>/http</code><code>.sh</code>
<code>. </code><code>/etc/profile</code><code>.d</code><code>/http</code><code>.sh</code>
<code>ln</code> <code>-s </code><code>/usr/local/apache/include/</code> <code>/usr/include/httpd</code>
<code>vim </code><code>/etc/httpd/httpd</code><code>.conf</code>
<code> </code><code>LoadModule slotmem_shm_module modules</code><code>/mod_slotmem_shm</code><code>.so</code>
<code> </code><code>ServerName localhost:80</code>
<code>chkconfig --add httpd</code>
<code>service httpd start</code>
3、配置Apache使用mod_jk子產品實作代理及負載均衡
######修改Apache主配置檔案,包含一個檔案并建立該檔案;實作代理功能
将下面指令添加到檔案末尾即可
<code># vim /etc/httpd/httpd.conf</code>
<code>Include </code><code>/etc/httpd/extra/mod_jk</code><code>.conf</code>
------------------------------------------------------------------------
建立檔案添加如下内容
<code># vim /etc/httpd/extra/mod_jk.conf</code>
<code>LoadModule jk_module modules</code><code>/mod_jk</code><code>.so</code>
<code>JkWorkersFile </code><code>/etc/httpd/extra/workers</code><code>.properties</code>
<code>JkLogFile logs</code><code>/mod_jk</code><code>.log</code>
<code>JkLogLevel debug</code>
<code>JkMount /* TomcatA</code>
<code>JkMount </code><code>/status/</code> <code>stat1</code>
<code># vim /etc/httpd/extra/workers.properties</code>
<code>worker.list=TomcatA,stat1</code>
<code>worker.TomcatA.port=8009</code>
<code>worker.TomcatA.host=172.16.14.3</code>
<code>worker.TomcatA.</code><code>type</code><code>=ajp13</code>
<code>worker.TomcatA.lbfactor=1</code>
<code>worker.stat1.</code><code>type</code> <code>= status</code>
----------------------------------------------------------------------
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
<code># service httpd restart</code>
<code>######修改後端Tomcat1伺服器,添加一個虛拟主機并提供測試頁面</code>
<code>[root@Tomcat1 ~]</code><code># cd /usr/local/tomcat/conf/</code>
<code>[root@Tomcat1 conf]</code><code># cp server.xml server.xml.bak</code>
<code>[root@Tomcat1 conf]</code><code># vim server.xml</code>
<code>######修改如下内容</code>
<code><Engine name=</code><code>"Catalina"</code> <code>defaultHost=</code><code>"www.jsprun.com"</code> <code>jvmRoute=</code><code>"TomcatA"</code><code>></code>
<code>######在"Engine"中添加如下内容</code>
<code><Host name=</code><code>"www.jsprun.com"</code> <code>appBase=</code><code>"/jsprun"</code>
<code> </code><code>unpackWARs=</code><code>"true"</code> <code>autoDeploy=</code><code>"true"</code><code>></code>
<code> </code><code><Valve className=</code><code>"org.apache.catalina.valves.AccessLogValve"</code>
<code>directory=</code><code>"logs"</code>
<code> </code><code>prefix=</code><code>"jsprun_access_log."</code> <code>suffix=</code><code>".txt"</code>
<code> </code><code>pattern=</code><code>"%h %l %u %t &quot;%r&quot; %s %b"</code> <code>/></code>
<code> </code><code><Context path=</code><code>""</code> <code>docBase=</code><code>"/jsprun"</code> <code>/></code>
<code> </code><code><</code><code>/Host</code><code>></code>
<code>----------------------------------------------------------------------</code>
<code>######建立網站存放目錄并建立測試頁</code>
<code>[root@Tomcat1 ~]</code><code># mkdir /jsprun</code>
<code>[root@Tomcat1 ~]</code><code># vim /jsprun/index.jsp</code>
<code><%@ page language=</code><code>"java"</code> <code>%></code>
<code><html></code>
<code> </code><code><</code><code>head</code><code>><title>TomcatA<</code><code>/title</code><code>><</code><code>/head</code><code>></code>
<code> </code><code><body></code>
<code> </code><code><h1><font color=</code><code>"red"</code><code>>TomcatA <</code><code>/font</code><code>><</code><code>/h1</code><code>></code>
<code> </code><code><table align=</code><code>"centre"</code> <code>border=</code><code>"1"</code><code>></code>
<code> </code><code><</code><code>tr</code><code>></code>
<code> </code><code><td>Session ID<</code><code>/td</code><code>></code>
<code> </code><code><% session.setAttribute(</code><code>"abc"</code><code>,</code><code>"abc"</code><code>); %></code>
<code> </code><code><td><%= session.getId() %><</code><code>/td</code><code>></code>
<code> </code><code><</code><code>/tr</code><code>></code>
<code> </code><code><td>Created on<</code><code>/td</code><code>></code>
<code> </code><code><td><%= session.getCreationTime() %><</code><code>/td</code><code>></code>
<code> </code><code><</code><code>/tr</code><code>></code>
<code> </code><code><</code><code>/table</code><code>></code>
<code> </code><code><</code><code>/body</code><code>></code>
<code><</code><code>/html</code><code>></code>
<code>######修改Apache配置檔案(mod_jk.conf、workers.properties);實作負載均衡</code>
<code>JkMount /* lbcluster</code>
<code>------------------------------------------------------------------------</code>
<code>worker.list=lbcluster,stat1</code>
<code>worker.TomcatB.port = 8009</code>
<code>worker.TomcatB.host=172.16.14.4</code>
<code>worker.TomcatB.</code><code>type</code> <code>= ajp13</code>
<code>worker.TomcatB.lbfactor = 1</code>
<code>worker.lbcluster.</code><code>type</code> <code>= lb</code>
<code>worker.lbcluster.sticky_session = 0 </code><code>#取值為{1|0}1将使用者session與後端伺服器綁定,0</code>
<code>為不綁定,如果支援session複制或session共享可以設定為0</code>
<code>worker.lbcluster.balance_workers = TomcatA, TomcatB</code>
<code># service httpd reload</code>
<code>######修改後端Tomcat2伺服器,添加一個虛拟主機并提供測試頁面</code>
<code>[root@Tomcat2 ~]</code><code># cd /usr/local/tomcat/conf/</code>
<code>[root@Tomcat2 conf]</code><code># cp server.xml server.xml.bak</code>
<code>[root@Tomcat2 conf]</code><code># vim server.xml</code>
<code><Engine name=</code><code>"Catalina"</code> <code>defaultHost=</code><code>"www.jsprun.com"</code> <code>jvmRoute=</code><code>"TomcatB"</code><code>></code>
<code>[root@Tomcat2 ~]</code><code># mkdir /jsprun</code>
<code>[root@Tomcat2 ~]</code><code># vim /jsprun/index.jsp</code>
<code> </code><code><</code><code>head</code><code>><title>TomcatB<</code><code>/title</code><code>><</code><code>/head</code><code>></code>
<code> </code><code><h1><font color=</code><code>"blue"</code><code>>TomcatB <</code><code>/font</code><code>><</code><code>/h1</code><code>></code>
<code>4、配置Apache基于mod_proxy子產品實作代理及負載均衡</code>
<code>######修改Apache的主配置檔案,包含一個檔案并建立該檔案;實作代理功能</code>
<code>#Include /etc/httpd/extra/mod_jk.conf #注釋此行</code>
<code>Include </code><code>/etc/httpd/extra/mod_proxy</code><code>.conf</code>
<code># vim /etc/httpd/extra/mod_proxy.conf</code>
<code>ProxyVia On</code>
<code>ProxyRequests Off</code>
<code>ProxyPreserveHost Off</code>
<code><Proxy *></code>
<code> </code><code>Order allow,deny</code>
<code> </code><code>Allow from all</code>
<code><</code><code>/Proxy</code><code>></code>
<code> </code><code>ProxyPass / ajp:</code><code>//172</code><code>.16.14.3:8009/</code>
<code> </code><code>ProxyPassReverse / ajp:</code><code>//172</code><code>.16.14.3:8009/</code>
<code><Location / ></code>
<code><</code><code>/Location</code><code>></code>
<code>=====================================================</code>
<code>=================</code>
<code>注釋:</code>
<code> </code><code>ProxyPass / ajp:</code><code>//172</code><code>.16.14.3:8009/ </code><code>#使用的是ajp協定</code>
<code>可以更改為使用http協定;如下</code>
<code> </code><code>ProxyPass / http:</code><code>//172</code><code>.16.14.3:8080/</code>
<code> </code><code>ProxyPassReverse / http:</code><code>//172</code><code>.16.14.3:8080/</code>
<code>######這裡隻示範使用ajp協定,如果是Apache與Tomcat結合建議使用ajp協定</code>
<code>######修改Apache配置檔案(mod_proxy.conf);實作負載均衡</code>
<code>ProxyVia Off</code>
<code><Proxy balancer:</code><code>//allen</code><code>></code>
<code> </code><code>BalancerMember ajp:</code><code>//172</code><code>.16.14.3:8009 loadfactor=1</code>
<code> </code><code>BalancerMember ajp:</code><code>//172</code><code>.16.14.4:8009 loadfactor=1</code>
<code> </code><code>ProxySet lbmethod=bytraffic</code>
<code><Location </code><code>/allen</code><code>> </code><code>#設定狀态及管理頁面</code>
<code> </code><code>SetHandler balancer-manager</code>
<code> </code><code>Proxypass !</code>
<code> </code><code>ProxyPass / balancer:</code><code>//allen/</code> <code>stickysession=JSESSIONID</code>
<code> </code><code>ProxyPassReverse / balancer:</code><code>//allen/</code>
<code> </code><code>BalancerMember ajp:</code><code>//172</code><code>.16.14.3:8009 loadfactor=1 </code><code>#使用ajp協定</code>
<code>可更改為使用http協定</code>
<code> </code><code>BalancerMember http:</code><code>//172</code><code>.16.14.3:8080 loadfactor=1</code>
<code> </code><code>BalancerMember http:</code><code>//172</code><code>.16.14.4:8080 loadfactor=1</code>
<code>######這裡隻介紹使用ajp協定,如果有興趣可以更改一下;loadfactor:權重</code>
<code>ProxySet lbmethod=bytraffic </code><code>#設定排程算法</code>
<code>byrequests:即基于權重将統計請求個數進行排程(預設)</code>
<code>bytraffic:則執行基于權重的流量計數排程</code>
<code>bybusyness:通過考量每個後端伺服器的目前負載進行排程</code>
<code>5、論壇安裝</code>
<code>######在Tomcat1伺服器上安裝</code>
<code># unzip JspRun\!_6.0.0_GBK.zip</code>
<code># mv /web/allen/index.jsp /web/allen/test.jsp</code>
<code># cp -r upload/* /web/allen/</code>
<code>修改論壇資料庫連接配接檔案</code>
<code># vim /web/allen/config.properties</code>
<code>dbhost = 172.16.14.5</code>
<code>dbport=3306</code>
<code>dbuser = bbsuser</code>
<code>dbpw = bbspass</code>
<code>dbname = bbs</code>
<code># catalina.sh stop</code>
<code># catalina.sh start</code>
<code>######安裝論壇程式</code>
<code>http:</code><code>//172</code><code>.16.14.1</code><code>/install</code><code>.jsp</code>
<code>######将論壇程式拷貝到Tomcat2伺服器上一份并通路測試</code>
<code># mv /web/allen/index.jsp /web/allen/test.jsp #把原來的測試頁重命名</code>
<code># scp -r 172.16.14.3:/web/allen/* /web/allen/</code>
<code>6、安裝并配置Keepalived</code>
<code>######将Apache1伺服器的Httpd配置檔案複制到Apache2伺服器</code>
<code>[root@Apache1 ~]</code><code># cd /etc/httpd/</code>
<code>[root@Apache1 httpd]</code><code># scp httpd.conf 172.16.14.2:/etc/httpd/</code>
<code>[root@Apache1 httpd]</code><code># cd extra/</code>
<code>[root@Apache1 extra]</code><code># scp mod_jk.conf mod_proxy.conf workers.properties </code>
<code>172.16.14.2:</code><code>/etc/httpd/extra/</code>
<code>######在Apache1與Apache2伺服器上安裝Keepalived;這裡使用rpm包安裝,光</code>
<code>盤映像中有</code>
<code>[root@Apache1 ~]</code><code># yum -y install keepalived</code>
<code>--------------------------------------------</code>
<code>[root@Apache2 ~]</code><code># yum -y install keepalived</code>
<code>######配置Apache1伺服器上的Keepalived</code>
<code>[root@Apache1 ~]</code><code># vim /etc/keepalived/keepalived.conf</code>
<code>! Configuration File </code><code>for</code> <code>keepalived</code>
<code>global_defs {</code>
<code> </code><code>notification_email {</code>
<code> </code><code>root@localhost</code>
<code> </code><code>}</code>
<code> </code><code>notification_email_from [email protected]</code>
<code> </code><code>smtp_server 172.16.0.0</code>
<code> </code><code>smtp_connect_timeout 30</code>
<code> </code><code>router_id LVS_ALLEN</code>
<code>}</code>
<code>vrrp_script chk_httpd {</code>
<code> </code><code>script </code><code>"killall -0 httpd"</code>
<code> </code><code>interval 1</code>
<code> </code><code>weight -2</code>
<code>vrrp_instance httpd_1 {</code>
<code> </code><code>state MASTER</code>
<code> </code><code>interface eth0</code>
<code> </code><code>virtual_router_id 58</code>
<code> </code><code>priority 100</code>
<code> </code><code>advert_int 1</code>
<code> </code><code>authentication {</code>
<code> </code><code>auth_type PASS</code>
<code> </code><code>auth_pass 1058</code>
<code> </code><code>}</code>
<code> </code><code>virtual_ipaddress {</code>
<code> </code><code>172.16.14.10</code>
<code> </code><code>track_script {</code>
<code> </code><code>chk_httpd</code>
<code>[root@Apache1 ~]</code><code># service keepalived start</code>
<code>[root@Apache1 ~]</code><code># chkconfig keepalived on</code>
<code>[root@Apache1 ~]</code><code># chkconfig --list keepalived</code>
<code>keepalived 0:off 1:off 2:on 3:on 4:on 5:on 6:off</code>
<code>[root@Apache1 ~]</code><code># ip addr show eth0</code>
<code>######配置Apache2伺服器上的Keepalived</code>
<code>[root@Apache2 ~]</code><code># vim /etc/keepalived/keepalived.conf</code>
<code> </code><code>state BACKUP</code>
<code> </code><code>priority 99</code>
<code>[root@Apache2 ~]</code><code># service keepalived start</code>
<code>[root@Apache2 ~]</code><code># chkconfig --list keepalived</code>
<code>######模拟前端一台伺服器出現故障;檢視虛拟IP是否轉移</code>
<code>######停止Apache1伺服器上的Httpd服務來模拟故障;并檢視IP</code>
<code>[root@Apache1 ~]</code><code># service httpd stop</code>
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state
UP qlen 1000
link/ether 00:0c:29:2c:1a:24 brd ff:ff:ff:ff:ff:ff
inet 172.16.14.1/16 brd 172.16.255.255 scope global eth0
inet6 fe80::20c:29ff:fe2c:1a24/64 scope link
valid_lft forever preferred_lft forever
=====================================================
===================
######檢視Apache2伺服器上的IP
[root@Apache2 ~]# ip addr show eth0
link/ether 00:0c:29:ec:f6:3f brd ff:ff:ff:ff:ff:ff
inet 172.16.14.2/16 brd 172.16.255.255 scope global eth0
inet 172.16.14.10/32 scope global eth0
inet6 fe80::20c:29ff:feec:f63f/64 scope link
######從上一步可以看出,虛拟IP位址已成功轉移,說明還能正常提供服務,可以
再次通路測試;如果伺服器修複好重新上線,虛拟IP還會轉移回去;這裡就不再測試
本文轉自1321385590 51CTO部落格,原文連結:http://blog.51cto.com/linux10000/1717537,如需轉載請自行聯系原作者