本片将介绍Nginx+Tomcat负载均衡集群的搭建。
大家一定都用过Tomcat ,因为有了这个开源的服务器,使得我们的开发和测试很方便。所以我首先要感谢Tomcat的作者开发出这么优秀的软件。让我门一起感谢他:sun的软件架构师詹姆斯.邓肯.戴维斯,为我们提供了如此优秀的一款开源服务器。
在开始正式内容之前,我先介绍下Tomcat的logo,他为什么会一只公猫?原因也是出自它的作者詹姆斯,因为大部分开源项目都会出一本书,并且将其封面设计成某个动物的素描,因此詹姆斯希望以一个动物命名此项目, 他希望这种动物能够自己照顾自己,最终,他将其命名为Tomcat(公猫),是不很有意思。
一、Tomcat服务的应用场景:
Tomcat属于轻量级应用服务器,在中小型系统和并发访问不是很多的场景下被普遍使用, 是开发和调试JSP程序的首选。由于其处理静态HTML的能力远不及Apache 或者Nginx,所以Tomcat 通常作为Servlet 和 JSP容器,单独运行在后端。
案例环境:
主机:Tomcat 服务器
操作系统:CentOS 7
Ip 地址 192.168.78.188
主要软件:jdk-8u131-linux-x64.rpm
apache-tomcat-8.5.11.tar.gz
1)启动后关闭防火墙
systemctl stop firewalld
二、实施准备
1.安装JDK,配置Java 环境
rpm -ivh jdk-8u131-linux-x64.rpm
2.在etc/profile.d/下建立java.sh 脚本,内容如下:
export JAVA_HOME = /usr/java/jdk1.8.0_131
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH = $JAVA_HOME/bin:$PATH
3.将java.sh 脚本导入到环境变量,使其生效
source/etc/profile.d/java.sh
4. 运行 Java -version命令或者javac -version 命令查看Java 版本是否和之前安装的一致。
Jdk 安装可参看这篇文章:感谢作者贡献
https://www.cnblogs.com/lhxsoft/p/10571286.html
三.安装Tomcat
1.下载Tomcat
wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.0.23/bin/apache-tomcat-8.0.23.tar.gz
2.解压Tomcat
tar -zxvf apache-tomcat-8.0.23.tar.gz
3.将解压后的文件夹移动到/usr/local/下,并改名tomcat8
mv apache-tomcat-8.0.23 /usr/local/tomcat8
4.j进入bin 目录下启动tomcat
cd bin/startup.sh
5.运行netstat命令可查看8080端口监听的信息
netstat -anpt|grep 8080

6.访问Tomcat 主页

7.tomcat 主配置说明
server.xml 为Tomcat 的主要配置文件,通过配置该文件,可以修改Tomcat 的启动端口,网站目录,虚拟主机,开启https等重要功能。
Tomcat Server 的组成说明
1)Server
Server 元素代表了整个Catalina 的servlet 容器。
2)Service
是一个集合, 它由一个或多个Connector 组成,以一个Engine ,负责处理所有Connector 所获得的所有的客户请求
3)Connector
有一个Connector 在某个指定的端口上侦听客户请求,并将获得请求交给Engine 来处理,从Engine
处获得回应并返回给客户。
Tomcat 有两个典型的Connector , 一个直接侦听来自borwser 的http请求,一个侦听赖在其他WebServer 的请求。
CoyoteHttp/1.1 Connector 在端口8080 处侦听来自browser 的http 请求。
Coyote JK2 Connector 在端口8009 处侦听赖在其他webServer (Apache) 的servlet/jsp 代理请求。
4) Engine
当Engine 下可以配置多个虚拟主机(Virtual Host) ,每个虚拟主机都有一个域名。
当Engine 获得一个请求时,它把该请求匹配到某个host 上, 然后把该请求交给Host 处理。
5)Host
代表一个Virtral Host (虚拟主机),每个虚拟主机和某个网络域名(Domain Name) 相匹配、
每个虚拟主机下都可以部署(deploy)一个或多个Web App . 每个WebApp 对应一个Context
来处理,匹配方法是“最长匹配”,所以一个path=="" 的 Context 将成为该Host 的默认 Context
6) Context
一个Context 对应一个Web Application ,一个 Web Application 由一个或多个Servlet 组成。
四、Nginx+Tomcat 负载均衡集群
Nginx是一款非常优秀的http服务器软件,它能够支持高达50000个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存、CPU等资源消耗低。
案例环境:
Nginx 服务器 Centos7 192.168.78.168
Tomcat服务器 1 Centos7 192.168.78.188
Tomcat服务器 2 Centos7 192.168.78.190
实施:
1. 188环境已经装好Tomcat ,同样 在190环境安装Tomcat服务器
2. 168环境安装Nginx服务器。
3.Nginx服务器配置
首先关闭防护墙 filewalld 和 iptables
配置nginx.conf
vi usr/local/nginx/conf/nginx.conf
在http{...}中 配置一下代码:
upstream tomcat_server{
server 192.168.78.188:8080 weight =1
server 192.168.78.190:8080 weight =1
}
在http{.....}-server{....}-location/{......}中加入一行“proxy_pass http://tomcat_server;”
接下来测试配置文件是否正确:/usr/local/nginx/sbin/nginx -t
启动nginx服务
nginx -c /usr/nginx/conf/nginx.conf
查看Nginx进程 ps aux| grep nginx
最后打开浏览器访问 http://192.168.78.168
网友评论