目录
Tomcat和Nginx、Apache(httpd)、Web服务器一样,具有处理HTML页面的功能不过Tomcat处理静态HTML的能力不如Nginx/Apache服务器
建议使用Nginx和Tomcat配合,Nginx处理静态,Tomcat处理动态程序 方案三中后端Tomcat可以运行在单独的主机,也可以是同一台主机上的多实例
一、Tomcat 单台部署
1、安装Tomcat和JDK
1.1 安装JDK
官网地址:Java Archive Downloads - Java SE 8u211 and later | Oracle 中国
解压
tar xzf jdk-8u211-linux-x64.tar.gz -C /usr/local/
cd /usr/local/
mv jdk1.8.0_211/ java
设置环境变量
echo 'export PATH=$PATH:/usr/local/java/bin' >> /etc/profile
source /etc/profile
查看JDK版本
java -version
1.2 安装Tomcat
创建工作目录
mkdir -p /data/application
获取tar包
cd /usr/src/
wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.96/bin/apache-tomcat-8.5.96.tar.gz --no-check-certificate
解压
tar xzf apache-tomcat-8.5.96.tar.gz -C /data/application/
cd /data/application/
mv apache-tomcat-8.5.96/ tomcat
设置环境变量
echo 'export TOMCAT_HOME=/data/application/tomcat' >> /etc/profile
source /etc/profile
查看tomcat版本
/data/application/tomcat/bin/version.sh
2、Tomcat目录介绍
2.1 tomcat主目录介绍
cd /data/application/tomcat/
tree -L 1
2.2 webapps目录介绍
cd webapps/
tree -L 1
2.3 Tomcat配置介绍
cd ../conf/
tree -L 1
2.4 Tomcat的管理
启动程序
/data/application/tomcat/bin/startup.sh
关闭程序
/data/application/tomcat/bin/shutdown.sh
启动
/data/application/tomcat/bin/startup.sh
查看端口
netstat -lntp |grep java
8005:这个端口负责监听关闭Tomcat的请求 shutdown:向以上端口发送的关闭服务器的命令字符串。
8009: 与其他http服务通信接口。
8080: 建立http也就是客户端访问连接用。可以修改
8.5.96版本的8009端口默认关闭,可以在conf/server.xml中打开
启动完成浏览器进行访问
如果tomcat启动慢,主要是因为生成随机数的时候卡住了,导致tomcat启动不了
解决办法:
安装rngd服务
yum -y install rng-tools
启动服务
systemctl start rngd
3、Web站点部署(jspgou 商城)
3.1 安装数据库
yum -y install mysql-server mysql
启动数据库
systemctl start mysqld && systemctl enable mysqld
修改密码
mysqladmin -p"`awk '/temporary password/{p=$NF}END{print p}' /var/log/mysqld.log`" password 'Linyunxi@123'
登录
mysql -p'Linyunxi@123'
创建数据库
create database jspgou default charset=utf8;
3.2 jspgou商城上线
获取地址:https://pan.baidu.com/s/1yEnBvdHK9LlLdEM892ljOQ?pwd=ueht
提取码:ueht
上传jspgou商城的代码
关闭tomcat
/data/application/tomcat/bin/shutdown.sh
清理服务目录
rm -rf /data/application/tomcat/webapps/*
解压
unzip jspgouV6-ROOT.zip
部署
cp -r ROOT /data/application/tomcat/webapps/
cd /data/application/tomcat/webapps/
修改配置
vim ROOT/WEB-INF/config/jdbc.properties
配置数据库连接
cd ~/DB/
mysql -uroot -p'Linyunxi@123' -D jspgou < jspgou.sql
解决报错
vim /etc/my.cnf
添加sql_mod
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUB
explicit_defaults_for_timestamp=1
systemctl restart mysqld
重新导入
mysql -uroot -p'Linyunxi@123' -D jspgou < jspgou.sql
启动tomcat
/data/application/tomcat/bin/startup.sh
访问192.168.8.129:8080
二、Tomcat反向代理集群
1、Tomcat多实例配置
1.1 安装Tomcat
详见以上单台部署
1.2 复制程序文件
cd /data/application/
cp -r tomcat/ tomcat_2
多实例之间端口不能一致
sed -i 's#8005#8011#;s#8080#8081#' tomcat/conf/server.xml
sed -i 's#8005#8012#;s#8080#8082#' tomcat_2/conf/server.xml
sed -i 's#8009#8019#' tomcat/conf/server.xml
sed -i 's#8009#8029#' tomcat_2/conf/server.xml
对比文件不同之处
diff tomcat/conf/server.xml tomcat_2/conf/server.xml
echo 8081 >> tomcat/webapps/ROOT/index.jsp
echo 8082 >> tomcat_2/webapps/ROOT/index.jsp
tomcat_2启动设置
cd /data/application/tomcat_2/bin/
vim start.sh
写入如下内容:
#!/bin/bash
#tomcat_2
export CATALINA_BASE="/data/application/tomcat_2"
case "$1" in
start)
$CATALINA_BASE/bin/startup.sh
;;
stop)
$CATALINA_BASE/bin/shutdown.sh
esac
chmod +x start.sh
修改catalina.sh,添加下列内容:
vim catalina.sh
CATALINA_HOME=/data/application/tomcat_2
tomcat启动设置
cd /data/application/tomcat/bin/
vim start.sh
写入如下内容:
#!/bin/bash
#tomcat
export CATALINA_BASE="/data/application/tomcat"
case "$1" in
start)
$CATALINA_BASE/bin/startup.sh
;;
stop)
$CATALINA_BASE/bin/shutdown.sh
esac
chmod +x start.sh
修改catalina.sh,添加下列内容:
vim catalina.sh
CATALINA_HOME=/data/application/tomcat
2.3 启动
/data/application/tomcat/bin/start.sh start
/data/application/tomcat_2/bin/start.sh start
访问测试
192.168.8.129:8081
192.168.8.129:8082
2、配置反向代理集群
2.1 安装负载均衡器
yum -y install nginx
2.2 配置负载均衡器
cd /etc/nginx/conf.d/
mv default.conf default.conf.bak
vim tomcat.conf
写入如下内容:
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/proxy.access.log main;
location / {
proxy_pass http://testweb;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
创建upstream配置文件
vim upstream.conf
写入如下内容
upstream testweb {
server 192.168.8.129:8081 weight=1 max_fails=1 fail_timeout=2s;
server 192.168.8.129:8082 weight=1 max_fails=1 fail_timeout=2s;
}
2.3 启动nginx
systemctl start nginx
2.4 使用命令访问测试
curl -s 192.168.8.129 | tail -1
2.5 在浏览器上进行访问
访问192.168.8.129