天天看點

install_apache_tomcat

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>&amp;&amp; </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>&gt;&gt; </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>&lt;Engine name=</code><code>"Catalina"</code> <code>defaultHost=</code><code>"www.jsprun.com"</code> <code>jvmRoute=</code><code>"TomcatA"</code><code>&gt;</code>

<code>######在"Engine"中添加如下内容</code>

<code>&lt;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>&gt;</code>

<code>        </code><code>&lt;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 &amp;quot;%r&amp;quot; %s %b"</code> <code>/&gt;</code>

<code>        </code><code>&lt;Context path=</code><code>""</code> <code>docBase=</code><code>"/jsprun"</code> <code>/&gt;</code>

<code>      </code><code>&lt;</code><code>/Host</code><code>&gt;</code>

<code>----------------------------------------------------------------------</code>

<code>######建立網站存放目錄并建立測試頁</code>

<code>[root@Tomcat1 ~]</code><code># mkdir /jsprun</code>

<code>[root@Tomcat1 ~]</code><code># vim /jsprun/index.jsp</code>

<code>&lt;%@ page language=</code><code>"java"</code> <code>%&gt;</code>

<code>&lt;html&gt;</code>

<code>  </code><code>&lt;</code><code>head</code><code>&gt;&lt;title&gt;TomcatA&lt;</code><code>/title</code><code>&gt;&lt;</code><code>/head</code><code>&gt;</code>

<code>  </code><code>&lt;body&gt;</code>

<code>    </code><code>&lt;h1&gt;&lt;font color=</code><code>"red"</code><code>&gt;TomcatA &lt;</code><code>/font</code><code>&gt;&lt;</code><code>/h1</code><code>&gt;</code>

<code>    </code><code>&lt;table align=</code><code>"centre"</code> <code>border=</code><code>"1"</code><code>&gt;</code>

<code>      </code><code>&lt;</code><code>tr</code><code>&gt;</code>

<code>        </code><code>&lt;td&gt;Session ID&lt;</code><code>/td</code><code>&gt;</code>

<code>    </code><code>&lt;% session.setAttribute(</code><code>"abc"</code><code>,</code><code>"abc"</code><code>); %&gt;</code>

<code>        </code><code>&lt;td&gt;&lt;%= session.getId() %&gt;&lt;</code><code>/td</code><code>&gt;</code>

<code>      </code><code>&lt;</code><code>/tr</code><code>&gt;</code>

<code>        </code><code>&lt;td&gt;Created on&lt;</code><code>/td</code><code>&gt;</code>

<code>        </code><code>&lt;td&gt;&lt;%= session.getCreationTime() %&gt;&lt;</code><code>/td</code><code>&gt;</code>

<code>     </code><code>&lt;</code><code>/tr</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>/table</code><code>&gt;</code>

<code>  </code><code>&lt;</code><code>/body</code><code>&gt;</code>

<code>&lt;</code><code>/html</code><code>&gt;</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>&lt;Engine name=</code><code>"Catalina"</code> <code>defaultHost=</code><code>"www.jsprun.com"</code> <code>jvmRoute=</code><code>"TomcatB"</code><code>&gt;</code>

<code>[root@Tomcat2 ~]</code><code># mkdir /jsprun</code>

<code>[root@Tomcat2 ~]</code><code># vim /jsprun/index.jsp</code>

<code>  </code><code>&lt;</code><code>head</code><code>&gt;&lt;title&gt;TomcatB&lt;</code><code>/title</code><code>&gt;&lt;</code><code>/head</code><code>&gt;</code>

<code>    </code><code>&lt;h1&gt;&lt;font color=</code><code>"blue"</code><code>&gt;TomcatB &lt;</code><code>/font</code><code>&gt;&lt;</code><code>/h1</code><code>&gt;</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>&lt;Proxy *&gt;</code>

<code>  </code><code>Order allow,deny</code>

<code>  </code><code>Allow from all</code>

<code>&lt;</code><code>/Proxy</code><code>&gt;</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>&lt;Location  / &gt;</code>

<code>&lt;</code><code>/Location</code><code>&gt;</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>&lt;Proxy balancer:</code><code>//allen</code><code>&gt;</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>&lt;Location </code><code>/allen</code><code>&gt;    </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: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; 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,如需轉載請自行聯系原作者