Tomcat服务器是免费的开放源代码的web应用服务器,属于轻量级应用服务器、在中小型系统和并发量访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
部署Tomcat
案例环境
实施准备
- 关闭防火墙
1. [root@localhost ~]# systemctl stop firewalld 2. [root@localhost ~]# ip a 3. 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 4. link/ether 00:0c:29:9d:34:74 brd ff:ff:ff:ff:ff:ff 5. inet 192.168.1.10/24 brd 192.168.1.255 scope global ens33 6. valid_lft forever preferred_lft forever 7. inet6 fe80::5f65:9c3d:d218:7cea/64 scope link tentative 8. valid_lft forever preferred_lft forever
在安装Tomcat之前必须先安装JDK。JDK的全称是Java Development Kit,是sun佛那个是免费提供的Java语言的软件开发工具包,其中包含Java虚拟机(JVM)。
- 检查JDK是否安装
1. [root@localhost ~]# java -version 2. openjdk version "1.8.0_102" 3. OpenJDK Runtime Environment (build 1.8.0_102-b14) 4. OpenJDK 64-Bit Server VM (build 25.102-b14, mixed mode)
安装配置Tomcat
- 解压apache-tomcat-8.5.16.tar.gz包。
[root@localhost ~]# tar zxf /media/apache-tomcat-8.5.16.tar.gz -C /usr/src
- 解压后生成文件夹,移动到/usr/src/下。
[root@localhost ~]# mv /usr/src/apache-tomcat-8.5.16/ /usr/local/tomcat8
- 启动tomcat
1. [root@localhost ~]# /usr/local/tomcat8/bin/startup.sh 2. Using CATALINA_BASE: /usr/local/tomcat8 3. Using CATALINA_HOME: /usr/local/tomcat8 4. Using CATALINA_TMPDIR: /usr/local/tomcat8/temp 5. Using JRE_HOME: /usr 6. Using CLASSPATH: /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar 7. Tomcat started. 8. [root@localhost ~]# netstat -anpt | grep 8080 9. tcp6 0 0 :::8080 :::* LISTEN 42773/java
- 打开浏览器访问测试:http://127.0.0.1:8080
- 关闭Tomcat运行命令
[root@localhost ~]# /usr/local/tomcat8/bin/shutdown.sh
Tomcat配置相关说明
Tomcat的主目录为/usr/local/tomcat8/。
1. [root@localhost ~]# ll /usr/local/tomcat8/ 2. total 92 3. drwxr-x--- 2 root root 4096 Jul 15 11:19 bin 4. drwx------ 3 root root 254 Jul 15 11:22 conf 5. drwxr-x--- 2 root root 4096 Jul 15 11:19 lib 6. -rw-r----- 1 root root 57092 Jun 22 2017 LICENSE 7. drwxr-x--- 2 root root 197 Jul 15 11:22 logs 8. -rw-r----- 1 root root 1723 Jun 22 2017 NOTICE 9. -rw-r----- 1 root root 7064 Jun 22 2017 RELEASE-NOTES 10. -rw-r----- 1 root root 15946 Jun 22 2017 RUNNING.txt 11. drwxr-x--- 2 root root 30 Jul 15 11:19 temp 12. drwxr-x--- 7 root root 81 Jun 22 2017 webapps 13. drwxr-x--- 3 root root 22 Jul 15 11:22 work
- 主要目录说明。
bin/:存放windows或linux平台上启动和关闭Tomcat的脚本文件。
conf/:存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml和web.xml。
lib/:存放Tomcat运行需要的库文件(JARS)。
logs:存放Tomcat执行时的LOG文件。
webapps:Tomcat的主要web发布目录(包括应用程序示例)。
work:存放JSP编译后产生的class文件。
- 配置文件说明。
1. [root@localhost ~]# ll /usr/local/tomcat8/conf/ 2. total 224 3. drwxr-x--- 3 root root 23 Jul 15 11:22 Catalina 4. -rw------- 1 root root 13816 Jun 22 2017 catalina.policy 5. -rw------- 1 root root 7376 Jun 22 2017 catalina.properties 6. -rw------- 1 root root 1338 Jun 22 2017 context.xml 7. -rw------- 1 root root 1149 Jun 22 2017 jaspic-providers.xml 8. -rw------- 1 root root 2358 Jun 22 2017 jaspic-providers.xsd 9. -rw------- 1 root root 3622 Jun 22 2017 logging.properties 10. -rw------- 1 root root 7511 Jun 22 2017 server.xml 11. -rw------- 1 root root 2164 Jun 22 2017 tomcat-users.xml 12. -rw------- 1 root root 2633 Jun 22 2017 tomcat-users.xsd 13. -rw------- 1 root root 168251 Jun 22 2017 web.xml
catalina.policy:权限控制配置文件。
catalina.properties:Tomcat属性配置文件。
context.xml:上下文配置文件。
logging.properties:日志log相关配置文件。
server.xml:主配置文件
tomcat-users.xml:manager-gui管理用户配置文件。
web.xml:Tomcat的server、servlet-mapping、filter、MIME等相关配置。
Tomcat主配置文件说明
server.xml为Tomcat的主配置文件,通过配置该文件,可以修改Tomcat的启动端口、网站目录、虚拟主机、开启https等重要功能。整个server.xml由以下结构构成:<Server>、<Service>、<Connector/>、<Engine>、<Host>、<Context>、</Context>、</Host>、</Engine>、</Service>和</Server>。
1. <Server port="8005" shutdown="SHUTDOWN"> 2. //Tomcat关闭端口,默认只对本机地址开放,可以在本机通过telnet127.0.0.1 8005访问,对Tomcat进行关闭操作。 3. ......//省略部分内容 4. <Connector port="8080" protocol="HTTP/1.1" 5. connectionTimeout="20000" 6. redirectPort="8443" /> 7. //Tomcat启动的默认端口号8080,可以根据需要进行更改。 8. ......//省略部分内容 9. <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 10. //Tomcat启动AJP1.3连接器时默认的端口号,可以根据需要进行更改。 11. ......//省略部分内容
建立Java的web站点
- 再根据目录建立一个web目录,并在里面建立一个webapp1目录,用于存放网站文件。
1. [root@localhost ~]# mkdir -pv /web/webapp1 2. mkdir: created directory ‘/web’ 3. mkdir: created directory ‘/web/webapp1’
- 在webapp1目录下建立一个index.jsp的测试页面。
1. [root@localhost ~]# vim /web/webapp1/index.jsp 2. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 3. <html> 4. <head> 5. <title>JSP test1 page</title> 6. </head> 7. <body> 8. <% out.println("11111111111111111");%> 9. </body> 10. </html>
- 修改Tomcat的server.xml文件。
定义一个虚拟主机,并将网站文件路径执行已建立的/web/webapp1,在host端增加context段。
1. [root@localhost ~]# vim /usr/local/tomcat8/conf/server.xml 2. ......//省略部分内容 3. <Host name="localhost" appBase="webapps" 4. unpackWARs="true" autoDeploy="true"> 5. <Context docBase="/web/webapp1" path="" reloadable="false"> //加入两行配置docBase:web应用的文档基准目录,reloadable设置监视“类”是否变化,path=""设置默认“类” 6. </Context>
- 关闭Tomcat,在重新启动。
1. [root@localhost ~]# /usr/local/tomcat8/bin/shutdown.sh 2. [root@localhost ~]# /usr/local/tomcat8/bin/startup.sh
- 访问浏览器http://127.0.0.1:8080,出现下图所示内容,说明该Tomcat站点已经配置成功,并且已经能够进行JSP了。
部署Nginx+Tmocat负载均衡群集
Nginx是一款非常优秀的http服务器软件,它能够支持高达50000个并发连接输的响应,拥有强大的静态资源处理能力,运行稳定、并且内存、CPU等系统资源消耗非常低。本次将以Nginx作为负载均衡器,Tomcat作为应用服务器的负载群集的设置方法。
实施准备
配置基本如Tomcat1 server相同,修改网页信息区分1和2即可。
Tomcat2 server配置
1. [root@localhost ~]# systemctl stop firewalld 2. [root@localhost ~]# java -version 3. openjdk version "1.8.0_102" 4. OpenJDK Runtime Environment (build 1.8.0_102-b14) 5. OpenJDK 64-Bit Server VM (build 25.102-b14, mixed mode) 6. [root@localhost ~]# eject 7. [root@localhost ~]# mount /dev/cdrom /media 8. mount: /dev/sr0 写保护,将以只读方式挂载 9. [root@localhost ~]# tar zxf /media/apache-tomcat-8.5.16.tar.gz -C /usr/src 10. [root@localhost ~]# mv /usr/src/apache-tomcat-8.5.16/ /usr/local/tomcat8 11. [root@localhost ~]# /usr/local/tomcat8/bin/startup.sh 12. Using CATALINA_BASE: /usr/local/tomcat8 13. Using CATALINA_HOME: /usr/local/tomcat8 14. Using CATALINA_TMPDIR: /usr/local/tomcat8/temp 15. Using JRE_HOME: /usr 16. Using CLASSPATH: /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar 17. Tomcat started. 18. [root@localhost ~]# netstat -anpt | grep 8080 19. tcp6 0 0 :::8080 :::* LISTEN 10597/java 20. [root@localhost ~]# mkdir -pv /web/webapp1 21. mkdir: 已创建目录 "/web" 22. mkdir: 已创建目录 "/web/webapp1" 23. [root@localhost ~]# scp root@192.168.1.10:/web/webapp1/index.jsp /web/webapp1/ //配置基本相同,从Tomcat1传过来即可 24. The authenticity of host '192.168.1.10 (192.168.1.10)' can't be established. 25. ECDSA key fingerprint is 68:df:0f:ac:c7:75:df:02:88:7d:36:6a:1a:ae:27:23. 26. Are you sure you want to continue connecting (yes/no)? yes 27. Warning: Permanently added '192.168.1.10' (ECDSA) to the list of known hosts. 28. root@192.168.1.10's password: 29. index.jsp 100% 191 0.2KB/s 00:00 30. [root@localhost ~]# vim /web/webapp1/index.jsp 31. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 32. <html> 33. 34. <head> 35. <title>JSP test1 page</title> 36. </head> 37. 38. <body> 39. <% out.println("2222222222");%> //网页内容改为222或区分Tomcat1和2的内容即可 40. </body> 41. </html> 42. [root@localhost ~]# scp root@192.168.1.10:/usr/local/tomcat8/conf/server.xml /usr/local/tomcat8/conf/server.xml 43. root@192.168.1.10's password: 44. server.xml 100% 7581 7.4KB/s 00:00 //配置文件从Tomcat1直接覆盖过来 45. [root@localhost ~]# /usr/local/tomcat8/bin/shutdown.sh 46. [root@localhost ~]# /usr/local/tomcat8/bin/startup.sh
Nginx服务器配置
- 在Nginx服务器上安装Nginx,反向代理Tomcat站点,并实现负载均衡。
1. [root@localhost ~]# systemctl stop firewalld 2. [root@localhost ~]# rm -rf /etc/yum.repos.d/* 3. [root@localhost ~]# vim /etc/yum.repos.d/yum.repo 4. [yum] 5. name=a 6. baseurl=file:///media 7. gpgcheck=0 8. [root@localhost ~]# mount /dev/cdrom /media 9. mount: /dev/sr0 is write-protected, mounting read-only 10. [root@localhost ~]# yum -y install pcre-devel zlib-devel openssl-devel //挂载系统盘安装相关软件包 11. [root@localhost ~]# groupadd nginx 12. [root@localhost ~]# useradd -g nginx nginx -s /bin/false 13. [root@localhost ~]# eject 14. [root@localhost ~]# mount /dev/cdrom /media //挂在Nginx光盘 15. mount: /dev/sr0 is write-protected, mounting read-only 16. [root@localhost ~]# tar zxf /media/nginx-1.12.0.tar.gz -C /usr/src 17. [root@localhost ~]# cd /usr/src/nginx-1.12.0/ 18. [root@localhost nginx-1.12.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-file-aio --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module 19. [root@localhost nginx-1.12.0]# make && make install
- 配置nginx.conf
把Nginx的默认站点通过proxy_pass方法代理到了设定好的tom负载均衡服务器组上。
1. 2. #gzip on; 3. upstream tom { //添加以下四行配置权重设置相同为1 4. server 192.168.1.10:8080 weight=1; 5. server 192.168.1.20:8080 weight=1; 6. } 7. server { 8. listen 80; 9. server_name localhost; 10. 11. #charset koi8-r; 12. 13. #access_log logs/host.access.log main; 14. 15. location / { 16. root html; 17. index index.html index.htm; 18. proxy_pass http://tom; //添加proxy_pass段代理tom 19. } 20. ......省略部分内容 21. }
- 测试nginx配置文件并启动
1. [root@localhost ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ //创建软连接 2. [root@localhost ~]# nginx -t //检查语法 3. nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok 4. nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful 5. [root@localhost ~]# nginx //启动nginx 6. [root@localhost ~]# ps aux | grep nginx 7. root 13994 0.0 0.0 20492 620 ? Ss 16:31 0:00 nginx: master process nginx 8. nginx 13998 0.0 0.0 23024 1392 ? S 16:31 0:00 nginx: worker process 9. root 14008 0.0 0.0 112648 960 pts/0 R+ 16:31 0:00 grep --color=auto nginx 10. [root@localhost ~]# netstat -anpt | grep nginx 11. tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 13994/nginx: master
测试负载均衡效果
客户机打开浏览器访问Nginx服务器http://192.168.1.30/。不断刷新浏览器测试,可以看到权重相同,页面会反复在以下两个页面来会切换。这说明负载均衡群集搭建成功,已经可以在两个Tomcat Server站点进行切换了。需要注意的是,实际生产环境中,多台Tomcat服务器网页应是一致的。