目录
发布之前的代码修改及环境配置
云服务器上redis的配置及安装
云服务器上tomcat多实例配置及验证
修改端口
配置环境变量
启动tomcat2并验证
服务器上nginx负载均衡配置及验证
自动化发布脚本编写
ps命令
logback热加载及线上验证
因为之前做了环境隔离,所以在发布之前要把prod的配置改成线上配置
定时关单任务在线上使用redis分布式的方式
在线上使用手写的解决session共享的重置session时间的filter
将logback.xml中的线上环境日志文件修改为系统环境变量的路径
将文件提交到git,并合并分支
git status
git add .
git commit -am 'deploy'
git push
git checkout master
git pull origin master
git merge v2.0
git push origin master
wget 地址链接 :下载redis-2.8.0-linux-mac.tar.gz
将redis-2.8.0-linux-mac.tar.gz移动到setup文件夹,并解压redis-2.8.0-linux-mac.tar.gz
mv redis-2.8.0-linux-mac.tar.gz setup/
cd setup/
tar -zxvf redis-2.8.0-linux-mac.tar.gz
进入redis-2.8.0,执行make命令,编译redis
cd redis-2.8.0
make
进入setup文件夹,将redis-2.8.0复制两份到上层目录
cp -r redis-2.8.0/ ../redis-2.8.0_1
cp -r redis-2.8.0/ ../redis-2.8.0_2
进入redis-2.8.0_2,修改配置文件,将端口改为6380
cd redis-2.8.0_2
vim redis.conf
分别进入两个redis的src下启动redis,以这种方式启动不会占用命令行,并且避免在关闭窗口或者ctrl+c时关闭redis
./redis-server ../redis.conf &
启动之后进行测试,以./redis-cli -p 端口号启动客户端
复制一份tomcat
cp -r apache-tomcat-8.5.32/ apache-tomcat2-8.5.32/
进入第二个tomcat修改端口
cd apache-tomcat2-8.5.32/
cd conf
vim server.xml
:wq保存退出
修改配置文件
sudo vim /etc/profile
export CATALINA_BASE=/developer/apache-tomcat-8.5.32
export CATALINA_HOME=/developer/apache-tomcat-8.5.32
export TOMCAT_HOME=/developer/apache-tomcat-8.5.32
export CATALINA_2_BASE=/developer/apache-tomcat2-8.5.32
export CATALINA_2_HOME=/developer/apache-tomcat2-8.5.32
export TOMCAT_2_HOME=/developer/apache-tomcat2-8.5.32
:wq保存退出
source /etc/profile命令,是更改生效。
看配置是否生效
echo $CATALINA_2_BASE
echo $CATALINA_2_HOME
echo $TOMCAT_2_HOME
进入bin目录下修改catalina.sh配置文件
vim catalina.sh
搜索OS
在下面加上配置
export CATALINA_BASE=$CATALINA_2_BASE
export CATALINA_HOME=$CATALINA_2_HOME
:wq保存退出
编辑防火墙
sudo vim /etc/sysconfig/iptables
开放8080端口和9080端口
重启防火墙
sudo service iptables restart
因为服务器关联了安全组,所以一定要在安全组中开放9080端口
进入/usr/local/nginx/conf/vhost文件夹,编辑文件www.zhpsyy.cn.conf
sudo vim www.zhpsyy.cn.conf
添加负载均衡配置
upstream www.zhpsyy.cn{
server 127.0.0.1:8080 weight=1;
server 127.0.0.1:9080 weight=1;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
proxy_pass http://www.zhpsyy.cn;
expires 30d;
}
location ~ .*\.(js|css)?$ {
proxy_pass http://www.zhpsyy.cn;
expires 7d;
}
进入/usr/local/nginx/sbin,测试配置文件是否有错误
sudo ./nginx -t
重启nginx
sudo ./nginx -s reload
在浏览器上验证
修改防火墙配置,关闭8080,9080端口
sudo vim /etc/sysconfig/iptables
使配置生效
sudo service iptables
重启防火墙
sudo service iptables
新建并编写一个test.sh文件
vim test.sh
给新建的test.sh执行权限
sudo chmod u+x test.sh
执行文件test.sh
./test.sh param1 param2
修改自动化发布脚本,使脚本用参数执行,参数对应git分支和tomcat
执行脚本,将v2.0分支代码发布到apache-tomcat-8.5.32中(注意:发布之前一定要先启动2个redis)
./deploy.sh v2.0 apache-tomcat-8.5.32/
发布完之后,进入/developer/apache-tomcat-8.5.32/logs,查看日志,此时定时任务已经启动
tail -f mmall.log
查看当前tomcat的进程
ps -ef|grep tomcat
注:当tomcat在shutdown之后,可能tomcat的进程并不会关闭,这就导致了同一个tomcat实例启动两次,那这个系统就有问题了,所以在发布之前要kill -9 tomcat进程名 去关闭进程。
发布第二个tomcat
./deploy.sh v2.0 apache-tomcat2-8.5.32/
可以看出线上的负载均衡是ok的。
进入/developer/apache-tomcat2-8.5.32/webapps/ROOT/WEB-INF/classes
编辑logback.xml,手动修改日志路径
至此,这个项目全部完成