一、配置阿里yum源
1.进入yum配置路径下载阿里yum源
进入yun配置地址
cd /etc/yum.repos.d/
rm -rf *
2.下载阿里源
3.加载阿里yum源
yum clean all
yum makecache
yum update
二、Nginx的安装过程
1.下载Nginx安装包,安装依赖环境包
(1)安装 C++编译环境
yum -y install gcc #C++
(2)安装pcre
yum -y install pcre-devel
(3)安装zlib
yum -y install zlib-devel
(4)安装Nginx
定位到nginx 解压文件位置,执行编译安装命令
[root@localhost nginx-1.12.2]# pwd
/usr/local/nginx/nginx-1.12.2
[root@localhost nginx-1.12.2]# ./configure && make && make install
(5)启动Nginx
安装完成后先寻找那安装完成的目录位置
[root@localhost nginx-1.12.2]# whereis nginx
nginx: /usr/local/nginx
进入Nginx子目录sbin启动Nginx
[root@localhost sbin]# ./nginx &
[1] 5768
查看Nginx是否启动
(6)Nginx快捷启动和开机启动配置
编辑Nginx快捷启动脚本【注意Nginx安装路径,需要根据自己的NGINX路径进行改动】
[root@localhost init.d]# vim /etc/rc.d/init.d/nginx
#!/bin/sh
# nginx - this script starts and stops the nginx daemon
#
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /etc/nginx/nginx.conf
# config: /usr/local/nginx/conf/nginx.conf
# pidfile: /usr/local/nginx/logs/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
lockfile=/var/lock/subsys/nginx
make_dirs() {
# make required directories
user=`$nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
if [ -z "`grep $user /etc/passwd`" ]; then
useradd -M -s /bin/nologin $user
fi
options=`$nginx -V 2>&1 | grep 'configure arguments:'`
for opt in $options; do
if [ `echo $opt | grep '.*-temp-path'` ]; then
value=`echo $opt | cut -d "=" -f 2`
if [ ! -d "$value" ]; then
# echo "creating" $value
mkdir -p $value && chown -R $user $value
fi
fi
done
}
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
make_dirs
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
#configtest || return $?
stop
sleep 1
start
}
reload() {
#configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac
为启动脚本授权 并加入开机启动
[root@localhost init.d]# chmod -R 777 /etc/rc.d/init.d/nginx
[root@localhost init.d]# chkconfig nginx
启动Nginx
[root@localhost init.d]# ./nginx start
将Nginx加入系统环境变量
[root@localhost init.d]# echo 'export PATH=$PATH:/usr/local/nginx/sbin'>>/etc/profile && source /etc/profile
[root@localhost init.d]# service nginx start
三、KeepAlived安装和配置
1. 主、从服务器上安装keepalived
使用yum安装keepalived
yum -y install keepalived
2.查看keepalived是否安装成功,出现版本即成功
rpm -q -a keepalived
2.主、从服务器上修改keepalived配置(配置文件路径:/etc/keepalived/keepalived.conf)
1)主服务上修改配置
! Configuration File for keepalived
global_defs {
router_id just01
}
vrrp_script chk_nginx {
script "/usr/local/src/nginx_check.sh" #脚本文件路径
interval 3 # 检测脚本执行的间隔:3s
weight 2 #权重,如果这个脚本检测为真,服务器权重+2
}
vrrp_instance VI_1 {
state MASTER # 指定keepalived的角色,MASTER为主,BACKUP为备。备份服务器上需将MASTER 改为BACKUP
interface ens192 # 通信端口 通过ip addr可以看到,根据自己的机器配置
virtual_router_id 51 # vrrp实例id keepalived集群的实例id必须一致,即主、备机的virtual_router_id必须相同
priority 100 #优先级,数值越大,获取处理请求的优先级越高。主、备机取不同的优先级,主机值较大,备份机值较小
advert_int 1 #心跳间隔,默认为1s。keepalived多机器集群 通过心跳检测当前服务器是否还正常工作,如果发送心跳没反应,备份服务器就会立刻接管;
authentication {
auth_type PASS #设置验证类型和密码,MASTER和BACKUP必须使用相同的密码才能正常通信
auth_pass justech #密码,主备服务器的要设成一样
}
virtual_ipaddress {
10.66.53.200 # 定义虚拟ip(VIP),可多设,每行一个,需要是公司中未使用的ip,最好跟服务器真实ip的网段一样,比如测试环境10.66.53 正式环境10.66.52
}
track_script {
chk_nginx #定义脚本名称,与上面的 vrrp_script 的值一致
}
}
2)从服务上修改配置
! Configuration File for keepalived
global_defs {
router_id just02
}
vrrp_script chk_nginx {
script "/usr/local/src/nginx_check.sh" #脚本文件路径
interval 3 # 检测脚本执行的间隔:3s
weight 2 #权重,如果这个脚本检测为真,服务器权重+2
}
vrrp_instance VI_1 {
state BACKUP # 指定keepalived的角色,MASTER为主,BACKUP为备。
interface ens192 # 通信端口 通过ip addr可以看到,根据自己的机器配置
virtual_router_id 51 # vrrp实例id keepalived集群的实例id必须一致,即主、备机的virtual_router_id必须相同
priority 80 #优先级,数值越大,获取处理请求的优先级越高。主、备机取不同的优先级,主机值较大,备份机值较小
advert_int 1 #心跳间隔,默认为1s。keepalived多机器集群 通过心跳检测当前服务器是否还正常工作,如果发送心跳没反应,备份服务器就会立刻接管;
authentication {
auth_type PASS #设置验证类型和密码,MASTER和BACKUP必须使用相同的密码才能正常通信
auth_pass justech #密码,主备服务器的要设成一样
}
virtual_ipaddress {
10.66.53.200 # 定义虚拟ip(VIP),可多设,每行一个,需要是公司中未使用的ip,最好跟服务器真实ip的网段一样,比如测试环境10.66.53 正式环境10.66.52
}
track_script {
chk_nginx #定义脚本名称,与上面的 vrrp_script 的值一致
}
}
2.主、从服务器上新增脚本文件,用于重启nginx或关闭keepalived
1) 创建文件
touch /usr/local/src/nginx_check.sh
2) 修改脚本文件内容
1.使用vim修改脚本文件
vim /usr/local/src/nginx_check.sh
2.将下面内容复制到脚本文件中
#! /bin/bash
#检测nginx是否启动了
A=`ps -C nginx --no-header | wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf #启动nginx,视各个服务器上的nginx启动命令决定
sleep 2 #睡眠2秒
if [ `ps -C nginx --no-header | wc -l` -eq 0 ];then
systemctl stop keepalived.service #启动失败,将keepalived服务杀死。将vip漂移到其它备份节点
fi
fi
注意:里面的启动nginx配置需要修改成主、从服务器上对应的启动命令
3) 对/usr/local/src/nginx_check.sh赋可执行权限
chmod 777 /usr/local/src/*.sh
3.启动相关服务
1) 启动nginx
1.如果以启动,则忽略
2) 启动keepalived
1.启动keepalived
systemctl start keepalived.service
2.查看keepalived是否启动成功
ps -ef|grep keepalived
3.补充关闭、重启keepalived命令
关闭:
systemctl stop keepalived.service
重启:
systemctl restart keepalived.service
四、安装tomcat
安装JDK
上传安装包至/data目录下
jdk-8u131-linux-x64.tar.gz
tar -zxvf jdk-8u131-linux-x64.tar.gz
mv jdk-8u131-linux-x64 jdk
pwd
/data/jdk
vi /etc/pfofile
JAVA_HOME=/data/jdk
JRE_HOME=/data/jdk/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
source /etc/profile
安装tomcat
上传安装包至/data目录下
tar -zxvf apache-tomcat-8.5.51.tar.gz
mv apache-tomcat-8.5.51 tomcat
cd tomcat/bin
./start.sh
1.更改Tomcat默认欢迎页面,用于标识切换Web
更改TomcatServer01 节点ROOT/index.jsp 信息,加入TomcatIP地址,并加入Nginx值,即修改节点192.168.43.103信息如下:
<divid="asf-box"><h1>${pageContext.servletContext.serverInfo}(192.168.224.103)<%=request.getHeader("X-NGINX")%></h1></div>
更改TomcatServer02 节点ROOT/index.jsp信息,加入TomcatIP地址,并加入Nginx值,即修改节点192.168.43.104信息如下:
<divid="asf-box"><h1>${pageContext.servletContext.serverInfo}(192.168.224.104)<%=request.getHeader("X-NGINX")%></h1></div>
2.启动Tomcat服务,查看Tomcat服务IP信息,此时Nginx未启动,因此request-header没有Nginx信息。
3.配置Nginx代理信息
1.配置Master节点[192.168.43.101]代理信息
upstream tomcat{server192.168.43.103:8080weight=1;
server192.168.43.104:8080weight=1;}
server{location/{proxy_pass http://tomcat;
proxy_set_header X-NGINX"NGINX-1";}
#......其他省略}
2.配置Backup节点[192.168.43.102]代理信息
upstream tomcat{server192.168.43.103:8080weight=1;
server192.168.43.104:8080weight=1;}
server{location/{proxy_pass http://tomcat;
proxy_set_header X-NGINX"NGINX-2";}
#......其他省略}
此时访问 192.168.43.101 可以看到103和104节点Tcomat交替显示,说明Nginx服务已经将请求负载到了2台tomcat上。
同理配置Backup[192.168.43.102] Nginx信息,启动Nginx后,访问192.168.43.102后可以看到Backup节点已起到负载的效果。