1.tomcat的定义
tomcat服务器是轻量级的Web应用服务器,普遍适用于中小型企业,免费开源。
除了能够处理html的静态页面,它还支持着serverlet和JSP的规范
serverlet:交互式浏览和修改数据,生成动态的Web页面--java语言实现的接口
2.tomcat的搭建
- 将预先下载好jdk解压,并更名为jdk,移动到/usr/local/目录下
tar -zxf jdk-8u181-linux-x64.tar.gz
mv jdk-1.8.0_181 jdk
mv jdk /usr/local
配置jdk环境变量
vim /etc/profile
写入如下:JAVA_HOME=/usr/local/jdk
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/jre/lib/txt:$JAVA_HOME/lib/tools.jar
export JAVA_HOME PATH CLASSPATH
然后生效source /etc/profile
java -version #查看是否安装成功
- 将预先下载好的tomcat包解压,并更名为tomcat,移动到/usr/local/目录下
tar -zxf apache-tomcat-9.0.54 (2).tar.gz
mv apache-tomcat-9.0.54 tomcat
mv tomcat /usr/local
- 在一步虚拟机上部署多个tomcat,可以利用cp,并修改默认的8080端口号
tomcat三个端口的作用,8005:SHUTDOWN--关闭时使用
8009:AJP端口,容器使用
8080:应用
cp tomcat tomcat1
cp tomcat tomcat2
sed -i 's#8080#8081#g' /usr/local/tomcat1
sed -i 's#8005#8006#g' /usr/local/tomcat1
sed -i 's#8009#8010#g' /usr/local/tomcat1
sed -i 's#8080#8082#g' /usr/local/tomcat2
sed -i 's#8005#8007#g' /usr.local/tomcat2
sed -i 's#8009#8011#g' /usr/local/tomcat2
- 对以上端口进行开放
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=8081/tcp --permanent
firewall-cmd --zone=public --add-port=8082/tcp --permanent
firewall-cmd --reload
- 启动tomcat,tomcat1,2并在网页上验证
以tomcat1位例 cd /usr/local/tomcat/bin/ ./startup.sh
ss -ltnp | grep java #查询tomcat运行
2.Nginx负载均衡
现在的网络应用由传统的C/S转为B/S架构,为了更好提升用户的体验,需要对系统集群进行优化,负载均衡器对请求通过某种算法进行分发,使server服务器能够协同一致,作为一个整体对外部请求进行处理,大大提升了系统的稳定以及性能。
常见的负载均衡实现方式有硬件如F5,软件(LVS,Nginx,haproxy)
软件负载均衡分为四层和七层,四层在前段与后端间相当于是路由的角色,处理转发更高效;七层更加的智能化,安全性高,性能受限。
说了这么多的废话,我们开始吧!
nginx源码包安装
tar xf nginx-1.20.1.tar.gz
cd nginx-1.20.1
groupadd nginx
useradd -s /sbin/nologin nginx -g nginx
yum -y install gcc gcc-c pcre pcre-devel zlib zlib-devel openssl openssl-devel
./configure --prefix=/usr/local/nginx
--user=nginx
--group=nginx
--with-pcre
--with-http_stub_status_module
--with-http_ssl_module
--with-http_gzip_static_module
make && make install
./nginx -v #在sbin下,查看nginx是否安装成功,若没有则删除重新编译
安装好, 设置环境变量
ln -s /usr/local/nginx/sbin/nginx /usr/sbin
设置nginx启动脚本
vim /etc/init.d/nginx
#!/bin/bash
# chkconfig: - 99 20
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
*)
echo "USAGE:$0 {start | stop | restart | reload}"
exit 1
esac
配置
cd /usr/local/nginx/conf
vim nginx.conf
由于我的80端口被占用,故改为8090,常见默认是80端口;在之后的测试中需要在域名后加上端口号才可以访问
nginx -t
service nginx reload
登入进行测试如下
nginx默认的算法是轮训,采用权重可以来进行分配,查看logs可以看到已经生效
期间若是提示nginx.pid丢失
可以pkill -9 nginx
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
service nginx reload
查询http可用端口semanager port -l | grep http