真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

JAVA企業(yè)級(jí)應(yīng)用TOMCAT實(shí)戰(zhàn)

1. Tomcat簡(jiǎn)介

Tomcat是Apache軟件基金會(huì)(Apache Software Foundation)的Jakarta 項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache、Sun和其他一些公司及個(gè)人共同開發(fā)而成。

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的禹州網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

Tomcat服務(wù)器是一個(gè)免費(fèi)的開放源代碼的Web應(yīng)用服務(wù)器,屬于輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場(chǎng)合下被普遍使用,是開發(fā)和調(diào)試JSP程序的選擇。

Tomcat和Nginx、Apache(httpd)、lighttpd等Web服務(wù)器一樣,具有處理HTML頁面的功能,另外它還是一個(gè)Servlet和JSP容器,獨(dú)立的Servlet容器是Tomcat的默認(rèn)模式。不過,Tomcat處理靜態(tài)HTML的能力不如Nginx/Apache服務(wù)器。

對(duì)比php軟件,區(qū)別?

目前Tomcat最新版本為9.0。Java容器還有resin、weblogic等。

2. Tomcat安裝 2.1 軟件
2.2 部署java環(huán)境

[root@tomcat ~]# cd /application/tools/ [root@tomcat tools]# rz rz waiting to receive. Starting zmodem transfer. Press Ctrl+C to cancel. Transferring apache-tomcat-8.0.27.tar.gz... 100% 8914 KB 8914 KB/sec 00:00:01 0 Errors Transferring jdk-8u60-linux-x64.tar.gz... 100% 176990 KB 14749 KB/sec 00:00:12 0 Errors tar xf jdk-8u60-linux-x64.tar.gz -C /application/ ln -s /application/jdk1.8.0_60 /application/jdk sed -i.ori \'$a export JAVA_HOME=/application/jdknexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATHnexport CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar\' /etc/profile source /etc/profile #→出現(xiàn)下面結(jié)果證明部署成功 [root@tomcat ~]# java -version java version "1.8.0_60" Java(TM) SE Runtime Environment (build 1.8.0_60-b27) Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode) 2.4 Tomcat目錄介紹

[root@tomcat ~]# cd /application/tomcat/ [root@tomcat tomcat]# tree -L 1 . ├── bin #→用以啟動(dòng)、關(guān)閉Tomcat或者其它功能的腳本(.bat文件和.sh文件) ├── conf #→用以配置Tomcat的XML及DTD文件 ├── lib #→存放web應(yīng)用能訪問的JAR包 ├── LICENSE ├── logs #→Catalina和其它Web應(yīng)用程序的日志文件 ├── NOTICE ├── RELEASE-NOTES ├── RUNNING.txt ├── temp #→臨時(shí)文件 ├── webapps #→Web應(yīng)用程序根目錄 └── work #→用以產(chǎn)生有JSP編譯出的Servlet的.java和.class文件 7 directories, 4 files [root@tomcat tomcat]# cd webapps/ [root@tomcat webapps]# ll total 20 drwxr-xr-x 14 root root 4096 Oct 5 12:09 docs #→tomcat幫助文檔 drwxr-xr-x 6 root root 4096 Oct 5 12:09 examples #→web應(yīng)用實(shí)例 drwxr-xr-x 5 root root 4096 Oct 5 12:09 host-manager #→管理 drwxr-xr-x 5 root root 4096 Oct 5 12:09 manager #→管理 drwxr-xr-x 3 root root 4096 Oct 5 12:09 ROOT #→默認(rèn)網(wǎng)站根目錄 2.5 啟動(dòng)Tomcat

#→啟動(dòng)程序/application/tomcat/bin/startup.sh #→關(guān)閉程序/application/tomcat/bin/shutdown.sh [root@tomcat ~]# /application/tomcat/bin/startup.sh Using CATALINA_BASE: /application/tomcat Using CATALINA_HOME: /application/tomcat Using CATALINA_TMPDIR: /application/tomcat/temp Using JRE_HOME: /application/jdk Using CLASSPATH: /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar Tomcat started. [root@tomcat ~]# netstat -tunlp|grep java tcp 0 0 :::8009 :::* LISTEN 4743/java tcp 0 0 :::8080 :::* LISTEN 4743/java [root@tomcat ~]# ps -ef|grep [j]ava root 4743 1 17 06:10 pts/0 00:00:03 /application/jdk/bin/java -Djava.util.logging.config.file=/application/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/application/tomcat/endorsed -classpath /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/application/tomcat -Dcatalina.home=/application/tomcat -Djava.io.tmpdir=/application/tomcat/temp org.apache.catalina.startup.Bootstrap start 2.6 訪問網(wǎng)站

2.7 Tomcat日志

[root@tomcat ~]# cd /application/tomcat/logs/ [root@tomcat logs]# ls catalina.2016-01-26.log localhost.2016-01-26.log catalina.out localhost_access_log.2016-01-26.txt host-manager.2016-01-26.log manager.2016-01-26.log #→tomcat實(shí)時(shí)日志 [root@tomcat logs]# tailf catalina.out 26-Jan-2016 06:10:24.006 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /application/apache-tomcat-8.0.27/webapps/examples has finished in 666 ms 26-Jan-2016 06:10:24.007 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /application/apache-tomcat-8.0.27/webapps/docs 26-Jan-2016 06:10:24.054 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /application/apache-tomcat-8.0.27/webapps/docs has finished in 47 ms 26-Jan-2016 06:10:24.055 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /application/apache-tomcat-8.0.27/webapps/manager 26-Jan-2016 06:10:24.134 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /application/apache-tomcat-8.0.27/webapps/manager has finished in 80 ms 26-Jan-2016 06:10:24.139 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /application/apache-tomcat-8.0.27/webapps/host-manager 26-Jan-2016 06:10:24.188 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /application/apache-tomcat-8.0.27/webapps/host-manager has finished in 50 ms 26-Jan-2016 06:10:24.195 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"] 26-Jan-2016 06:10:24.206 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"] 26-Jan-2016 06:10:24.211 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 1560 ms 3. Tomcat配置文件 3.1 Tomcat配置文件

[root@tomcat conf]# pwd /application/tomcat/conf [root@tomcat conf]# ll -h total 216K drwxr-xr-x 3 root root 4.0K Jan 26 06:10 Catalina -rw------- 1 root root 13K Sep 28 16:19 catalina.policy -rw------- 1 root root 7.0K Sep 28 16:19 catalina.properties -rw------- 1 root root 1.6K Sep 28 16:19 context.xml -rw------- 1 root root 3.4K Sep 28 16:19 logging.properties -rw------- 1 root root 6.4K Sep 28 16:19 server.xml #→主配置文件 -rw------- 1 root root 1.8K Sep 28 16:19 tomcat-users.xml #→Tomcat管理用戶配置文件 -rw------- 1 root root 1.9K Sep 28 16:19 tomcat-users.xsd -rw------- 1 root root 164K Sep 28 16:19 web.xml 3.2 Tomcat管理

測(cè)試功能,生產(chǎn)環(huán)境不要用。

Tomcat管理功能用于對(duì)Tomcat自身以及部署在Tomcat上的應(yīng)用進(jìn)行管理的web應(yīng)用。在默認(rèn)情況下是處于禁用狀態(tài)的。如果需要開啟這個(gè)功能,就需要配置管理用戶,即配置前面說過的tomcat-users.xml。

[root@tomcat ~]# vim /application/tomcat/conf/tomcat-users.xml ………… #→在此行前加入上面三行 [root@tomcat ~]# /application/tomcat/bin/shutdown.sh [root@tomcat ~]# /application/tomcat/bin/startup.sh 3.3 Tomcat主配置文件Server.xml詳解 3.3.1 server.xml組件類別 頂級(jí)組件:位于整個(gè)配置的頂層,如server。 容器類組件:可以包含其它組件的組件,如service、engine、host、context。 連接器組件:連接用戶請(qǐng)求至tomcat,如connector。 被嵌套類組件:位于一個(gè)容器當(dāng)中,不能包含其他組件,如Valve、logger。

3.3.2 組件詳解 engine:核心容器組件,catalina引擎,負(fù)責(zé)通過connector接收用戶請(qǐng)求,并處理請(qǐng)求,將請(qǐng)求轉(zhuǎn)至對(duì)應(yīng)的虛擬主機(jī)host。 host:類似于httpd中的虛擬主機(jī),一般而言支持基于FQDN的虛擬主機(jī)。 context:定義一個(gè)應(yīng)用程序,是一個(gè)最內(nèi)層的容器類組件(不能再嵌套)。配置context的主要目的指定對(duì)應(yīng)對(duì)的webapp的根目錄,類似于httpd的alias,其還能為webapp指定額外的屬性,如部署方式等。 connector:接收用戶請(qǐng)求,類似于httpd的listen配置監(jiān)聽端口的。 service(服務(wù)):將connector關(guān)聯(lián)至engine,因此一個(gè)service內(nèi)部可以有多個(gè)connector,但只能有一個(gè)引擎engine。service內(nèi)部有兩個(gè)connector,一個(gè)engine。因此,一般情況下一個(gè)server內(nèi)部只有一個(gè)service,一個(gè)service內(nèi)部只有一個(gè)engine,但一個(gè)service內(nèi)部可以有多個(gè)connector。 server:表示一個(gè)運(yùn)行于JVM中的tomcat實(shí)例。 Valve:閥門,攔截請(qǐng)求并在將其轉(zhuǎn)至對(duì)應(yīng)的webapp前進(jìn)行某種處理操作,可以用于任何容器中,比如記錄日志(access log valve)、基于IP做訪問控制(remote address filter valve)。 logger:日志記錄器,用于記錄組件內(nèi)部的狀態(tài)信息,可以用于除context外的任何容器中。 realm:可以用于任意容器類的組件中,關(guān)聯(lián)一個(gè)用戶認(rèn)證庫,實(shí)現(xiàn)認(rèn)證和授權(quán)??梢躁P(guān)聯(lián)的認(rèn)證庫有兩種:UserDatabaseRealm、MemoryRealm和JDBCRealm。 UserDatabaseRealm:使用JNDI自定義的用戶認(rèn)證庫。 MemoryRealm:認(rèn)證信息定義在tomcat-users.xml中。 JDBCRealm:認(rèn)證信息定義在數(shù)據(jù)庫中,并通過JDBC連接至數(shù)據(jù)庫中查找認(rèn)證用戶。 3.3.3 配置文件注釋

4. WEB站點(diǎn)部署

上線的代碼有兩種方式,第一種方式是直接將程序目錄放在webapps目錄下面,這種方式大家已經(jīng)明白了,就不多說了。第二種方式是使用開發(fā)工具將程序打包成war包,然后上傳到webapps目錄下面。下面讓我們見識(shí)一下這種方式。

4.1 使用war包部署web站點(diǎn)

[root@tomcat webapps]# pwd /application/tomcat/webapps [root@tomcat webapps]# rz #→上傳memtest.war,此文件也在上面的百度網(wǎng)盤里 [root@tomcat webapps]# ls docs examples host-manager manager memtest memtest.war ROOT

4.2 自定義默認(rèn)網(wǎng)站目錄

方法一

將meminfo.jsp或其他程序放在tomcat/webapps/ROOT目錄下即可。因?yàn)槟J(rèn)網(wǎng)站根目錄為tomcat/webapps/ROOT

方法二

[root@tomcat ~]# vim /application/tomcat/conf/server.xml [root@tomcat ~]# /application/tomcat/bin/shutdown.sh [root@tomcat ~]# /application/tomcat/bin/startup.sh 5. Tomcat多實(shí)例及集群架構(gòu) 5.1 Tomcat多實(shí)例 5.1.1 復(fù)制Tomcat目錄

[root@tomcat ~]# cd /application/ [root@tomcat application]# cp -a apache-tomcat-8.0.27 tomcat8_1 [root@tomcat application]# cp -a apache-tomcat-8.0.27 tomcat8_2 5.1.2 修改配置文件

[root@tomcat application]# mkdir -p /data/www/www/ROOT [root@tomcat application]# cp /application/tomcat/webapps/memtest/meminfo.jsp /data/www/www/ROOT/ [root@tomcat ~]# sed -i \'22s#8005#8011#;69s#8080#8081#;123s#appBase=".*"# appBase="/data/www/www"#\' /application/tomcat8_1/conf/server.xml [root@tomcat ~]# sed -i \'22s#8005#8012#;69s#8080#8082#;123s#appBase=".*"# appBase="/data/www/www"#\' /application/tomcat8_2/conf/server.xml [root@tomcat ~]# diff /application/tomcat/conf/server.xml /application/tomcat8_1/conf/server.xml 22c22 < --- > 69c69 < --- > 69c69 <

for i in {1..2};do /application/tomcat8_$i/bin/startup.sh;done netstat -tunlp|grep java

5.2 Tomcat集群

使用nginx+Tomcat反向代理集群

[root@tomcat ~]# vim /application/nginx/conf/nginx.conf upstream web_pools { server 127.0.0.1:8081; server 127.0.0.1:8082; } server { listen 80; server_name localhost; location / { root html; index index.jsp index.html index.htm; proxy_pass http://web_pools; } } [root@tomcat ~]# /application/nginx/sbin/nginx -t [root@tomcat ~]# /application/nginx/sbin/nginx

6. Tomcat安全優(yōu)化和性能優(yōu)化 6.1 安全優(yōu)化 降權(quán)啟動(dòng) telnet管理端口保護(hù) ajp連接端口保護(hù) 禁用管理端 6.2 性能優(yōu)化 6.2.1 屏蔽dns查詢enableLookups="false"

6.2.2 jvm調(diào)優(yōu)

Tomcat最吃內(nèi)存,只要內(nèi)存足夠,這只貓就跑的很快。

如果系統(tǒng)資源有限,那就需要進(jìn)行調(diào)優(yōu),提高資源使用率。

優(yōu)化catalina.sh配置文件。在catalina.sh配置文件中添加以下代碼: JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512m -XX:MaxPermSize=512m" server:一定要作為第一個(gè)參數(shù),在多個(gè)CPU時(shí)性能佳 -Xms:初始堆內(nèi)存Heap大小,使用的最小內(nèi)存,cpu性能高時(shí)此值應(yīng)設(shè)的大一些 -Xmx:初始堆內(nèi)存heap值,使用的內(nèi)存 上面兩個(gè)值是分配JVM的最小和內(nèi)存,取決于硬件物理內(nèi)存的大小,建議均設(shè)為物理內(nèi)存的一半。 -XX:PermSize:設(shè)定內(nèi)存的永久保存區(qū)域 -XX:MaxPermSize:設(shè)定內(nèi)存的永久保存區(qū)域 -XX:MaxNewSize: -Xss 15120 這使得JBoss每增加一個(gè)線程(thread)就會(huì)立即消耗15M內(nèi)存,而值應(yīng)該是128K,默認(rèn)值好像是512k. +XX:AggressiveHeap 會(huì)使得 Xms沒有意義。這個(gè)參數(shù)讓jvm忽略Xmx參數(shù),瘋狂地吃完一個(gè)G物理內(nèi)存,再吃盡一個(gè)G的swap。 -Xss:每個(gè)線程的Stack大小 -verbose:gc 現(xiàn)實(shí)垃圾收集信息 -Xloggc:gc.log 指定垃圾收集日志文件 -Xmn:young generation的heap大小,一般設(shè)置為Xmx的3、4分之一 -XX:+UseParNewGC :縮短minor收集的時(shí)間 -XX:+UseConcMarkSweepGC :縮短major收集的時(shí)間


分享標(biāo)題:JAVA企業(yè)級(jí)應(yīng)用TOMCAT實(shí)戰(zhàn)
網(wǎng)頁路徑:http://weahome.cn/article/cggips.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部