岁月如梭,一年一度的光棍节又来了。博主和往年一样,干着节假日加班的活。不知道此时此刻是否有一大波xxx丝和博主一样呢?当前闲暇时刻,博主忍不住给各位xxx丝同僚们来一波进补,为了博主的无私奉献,也为了节假日的基情节,请大家别忘了给博主来一波大大的点赞啊!
背景介绍:某个大型项目,平常日访问量(pv)大概在500万左右,web服务器50台。节假日这个大型秒抢活动的时候,经往年的流量峰值和去年到今年的用户增长量来评估,项目组决定增添50台web服务器来抗流量。由于新增的50台服务器是通过vpn+堡垒机+web运维系统的形式访问,项目组没有密码,所以无法做脚本一键扩容等等操作,下面的操作都为手动的。
操作步骤:
一、备份之前已经部署好的web服务器tomcat目录(用于扩容使用)
#备份apache-tomcat-7.0.57
nohup tar --exclude /opt/www/apache-tomcat-7.0.57/temp --exclude /opt/www/apache-tomcat-7.0.57/logs --exclude /opt/www/apache-tomcat-7.0.57/webapps/xxxmp/attached --exclude /opt/www/apache-tomcat-7.0.57/webapps/xxxmp/download --exclude /opt/www/apache-tomcat-7.0.57/webapps/xxxmp/uploads -zcvf /opt/backup/xxxmp-apache-tomcat-7.0.57.tar.gz /opt/www/apache-tomcat-7.0.57 1>/opt/backup/xxxmpcodebackup.log 2>/dev/null &
#备份t1(tomcat服务器)
nohup tar --exclude /opt/www/t1/temp --exclude /opt/www/t1/logs --exclude /opt/www/t1/webapps/xxxmp/attached --exclude /opt/www/t1/webapps/xxxmp/download --exclude /opt/www/t1/webapps/xxxmp/uploads -zcvf /opt/backup/xxxmp-t1.tar.gz /opt/www/t1 1>/opt/backup/xxxmpcodebackup.log 2>/dev/null &
二、jdk安装
rpm -qa|grep java
rpm -e --nodeps java-1.6.0-openjdk-javadoc-1.6.0.41-1.13.13.1.el6_8.x86_64
rpm -e --nodeps java-1.7.0-openjdk-devel-1.7.0.131-2.6.9.0.el6_8.x86_64
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.x86_64
rpm -e --nodeps java-1.6.0-openjdk-devel-1.6.0.41-1.13.13.1.el6_8.x86_64
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.x86_64
rpm -e --nodeps java-1.5.0-gcj-1.5.0.0-29.1.el6.x86_64
rpm -qa|grep java
rpm -ivh jdk-7u72-linux-x64.rpm
java -version
#查询java目录
which java
java -verbose
#修改配置文件
vi /etc/profile
#跳到文件结尾
shift+G
#下一行新增进入插入模式
o
#粘贴下面的
export JAVA_HOME=/usr/java/jdk1.7.0_72
PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#保存
shift+Z+Z
cat /etc/profile
source /etc/profile
java -version
三、tomcat安装(tomcat、代码解压到相应目录)
tar -zxvf xxxmp-apache-tomcat-7.0.57.tar.gz -C /
tar -zxvf xxxmp-t1.tar.gz -C /
四、创建tomcat中web项目下需要挂载的目录
mkdir -p /opt/www/apache-tomcat-7.0.57/webapps/xxxmp/attached
mkdir -p /opt/www/apache-tomcat-7.0.57/webapps/xxxmp/uploads/excel
mkdir -p /opt/www/t1/webapps/xxxmp/attached
mkdir -p /opt/www/t1/webapps/xxxmp/uploads/excel
五、创建备份时删除的tomcat日志目录
mkdir -p /opt/www/apache-tomcat-7.0.57/logs
mkdir -p /opt/www/t1/logs
六、nfs共享文件挂载
#显示资源nfs服务器的开放的共享目录情况
showmount -e 10.x.x.xxx
#新服务器
mount -t nfs 10.x.x.xxx:/opt/data/attached /opt/www/apache-tomcat-7.0.57/webapps/xxxmp/attached
mount -t nfs 10.x.x.xxx:/opt/data/uploads/excel /opt/www/apache-tomcat-7.0.57/webapps/xxxmp/uploads/excel
mount -t nfs 10.x.x.xxx:/opt/data/attached /opt/www/t1/webapps/xxxmp/attached
mount -t nfs 10.x.x.xxx:/opt/data/uploads/excel /opt/www/t1/webapps/xxxmp/uploads/excel
#查看mount挂载情况
mount
#开机自动挂载
vi /etc/fstab
#在最后添加如下内容
10.x.x.xxx:/opt/data/attached /opt/www/apache-tomcat-7.0.57/webapps/xxxmp/attached nfs rw,tcp,intr 0 1
10.x.x.xxx:/opt/data/uploads/excel /opt/www/apache-tomcat-7.0.57/webapps/xxxmp/uploads/excel nfs rw,tcp,intr 0 1
10.x.x.xxx:/opt/data/attached /opt/www/t1/webapps/xxxmp/attached nfs rw,tcp,intr 0 1
10.x.x.xxx:/opt/data/uploads/excel /opt/www/t1/webapps/xxxmp/uploads/excel nfs rw,tcp,intr 0 1
#重启系统测试
reboot
七、网络检查
#网络检查(nginx到服务器、服务器到数据库、服务器到redis、外网访问权限)
nc -v 10.x.x.xxx 6xx9
nc -v 10.x.x.xxx 8xx6
ping 10.x.x.xx1
ping 10.x.x.xx2
ping 10.x.x.xx8
#telnet命令被用来检测是个远端端口是否通畅。
[root@oldboy ~]# telnet baidu.com 80
Trying 123.125.114.144...
Connected to baidu.com (123.125.114.144). #==>出现Connected表示连通了,说明百度的80端口开放的
Escape character is '^]'. #==>ctrl+]退出此地。
^]
telnet> quit
Connection closed.
八、域名配置/etc/hosts(到微信服务器的访问映射)
#域名解析映射(非必须)
58.246.220.31 api.weixin.qq.com
101.226.212.27 api.weixin.qq.com file.api.weixin.qq.com
101.227.162.120 api.weixin.qq.com
116.211.185.150 res.wx.qq.com
116.211.169.230 v.juhe.cn
#检查第三方api接口域名是否畅通
ping v.juhe.cn
ping api.weixin.qq.com
ping file.api.weixin.qq.com
ping res.wx.qq.com
ping v.juhe.cn
九、可打开的最大文件句柄数配置
ulimit -a 查看open file数
ulimit -n 查看当前用户的每个进程最多允许同时打开1024个文件
#设置当前用户的最大文件限制
ulimit -n 65535
#ulimit命令修改的数值只对当前登录用户的目前使用环境有效,系统重启或者用户退出后就会失效
#设置永久生效
vi /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
reboot
十、启动web服务器校验
sh startup.sh
wget http://127.0.0.1:8080/xxxmp
wget http://127.0.0.1:8089/xxxmp
十一、nginx配置上线
vi /usr/local/nginx/conf/nginx_go_online.conf
#添加server
server 10.x.x.xxx:8080 weight=2 max_fails=1 fail_timeout=10s;
server 10.x.x.xxx:8080 weight=2 max_fails=1 fail_timeout=10s;
...
server 10.x.x.xxx:8089 weight=2 max_fails=1 fail_timeout=10s;
server 10.x.x.xxx:8089 weight=2 max_fails=1 fail_timeout=10s;
...
...
#发布到其它nginx服务器
scp remote_username@remote_ip:remote_folder
scp /usr/local/nginx/conf/nginx_go_online.conf root@10.x.x.xxx:/usr/local/nginx/conf/nginx_go_online.conf
scp /usr/local/nginx/conf/nginx_go_online.conf root@10.x.x.xxx:/usr/local/nginx/conf/nginx_go_online.conf
#一键上线所有nginx
sh n_go_online_ssh.sh
十三、验证web服务器业务是否正常
十四、查询javamelody监控是否正常(https://xxxcluxxx.myxxxx.com/xxxmp/monitoring)
以上是整个扩容过程,当然博主在扩容过程中遇到了些问题、包括:tomcat的session同步问题(经分析是因为备份之后换了之前的redis session共享包引起)、nfs忘记配置重启自动挂载等等。这些都已经整理在以上博客中。
最后寄语,以上是博主本次文章的全部内容,如果大家觉得博主的文章还不错,请点赞;如果您对博主其它服务器大数据技术或者博主本人感兴趣,请关注博主博客,并且欢迎随时跟博主沟通交流。
来源:oschina
链接:https://my.oschina.net/u/2371923/blog/2874606