安装vim和net-tools

yum install vim -y
yum install net-tools -y

安装JDK环境

将预先下载好jdk解压,并更名为jdk,移动到/usr/local/目录下
tar -zxf jdk-8u161-linux-x64.tar.gz
mv jdk1.8.0_161/ jdk
mv jdk /usr/local
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包解压,并更名为tomcat,移动到/usr/local/目录下,并复制另外两个Tomcat出来
tar -zxf apache-tomcat-8.5.84.tar.gz
mv apache-tomcat-8.5.84 tomcat
mv tomcat /usr/local
cd /usr/local
cp -r tomcat tomcat1
cp -r tomcat tomcat2

更改Tomcat配置server.xml中的端口号

方法一:sed -i 就是直接对文本文件进行操作的 sed -i 's/原字符串/新字符串/g' 对应路径,其中s为替换,g为全局。 方法二:命令行模式输入, :%s/源字符串/目的字符串/g 这里采用第一种
sed -i 's#8080#8081#g' /usr/local/tomcat1/conf/server.xml 
sed -i 's#8005#8006#g' /usr/local/tomcat1/conf/server.xml
sed -i 's#8009#8010#g' /usr/local/tomcat1/conf/server.xml
sed -i 's#8080#8082#g' /usr/local/tomcat2/conf/server.xml
sed -i 's#8005#8007#g' /usr/local/tomcat2/conf/server.xml
sed -i 's#8009#8011#g' /usr/local/tomcat2/conf/server.xml

放开端口,或者关闭防火墙

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
systemctl stop firewalld

启动三个Tomcat并在网页上验证

cd /usr/local/tomcat/bin/
./startup.sh
cd /usr/local/tomcat1/bin/
./startup.sh
cd /usr/local/tomcat2/bin/
./startup.sh

安装Nginx

为了方便直接使用脚本安装
Nginx安装包nginx-1.12.2.tar.gz放在/opt里面
编写并执行脚本nginx_install.sh,脚本位置随意,如下为脚本内容
#!/bin/bash
#======编译安装nginx服务======
#安装所需开发包和编译环境、编译器
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make
#创建程序用户,便于准确控制访问
useradd -M -s /sbin/nologin nginx

#解压安装包
cd /opt
tar zxvf nginx-1.12.2.tar.gz -C /opt/

#指定安装路径、指定用户名、组名、启用模块以支持统计状态
cd nginx-1.12.2/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-file-aio --with-http_gzip_static_module --with-http_flv_module --with-http_ssl_module


#编译及安装
make && make install

#软链接便于系统识别nginx操作命令
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

#添加nginx系统服务
echo '[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecrReload=/bin/kill -s HUP $MAINPID
ExecrStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target' > /lib/systemd/system/nginx.service

#赋权及开启服务、开启开机自启
chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service

验证三个Tomcat是否启动成功。

netstat -ntpl
如下为成功后会出现的内容
tcp6       0      0 127.0.0.1:8005          :::*              LISTEN      35174/java          
tcp6 0 0 127.0.0.1:8006 :::* LISTEN 35186/java
tcp6 0 0 127.0.0.1:8007 :::* LISTEN 35200/java
tcp6 0 0 :::8080 :::* LISTEN 35174/java
tcp6 0 0 :::8081 :::* LISTEN 35186/java
tcp6 0 0 :::8082 :::* LISTEN 35200/java

配置Nginx

cd /usr/local/nginx/conf
vim nginx.conf
添加如下内容,没有的就添加,有的就修改
注意事项:upstream后的名字要与location下的proxy_pass的名字一样。比方:upstream tomcat,proxy_pass http://tomcat;
注意事项:server_name 为将要映射的域名
注意事项:upstream下的server接三个相同的ip地址,接三个不同的端口,weight=1为权重,服务每收到3个客户端的请求,会把其中的1个转发给后端a,把其中的1个转发给后端b,把其中的1个转发给后端c,实现负载均衡。max_fails=3,fail_timeout=10s,意思是在10秒内请求某一应用失败3次,认为该应用宕机,然后等待10秒,这段时间内不会再把新请求发送到已经宕机的应用,而是直接发到正常的服务器,时间到后再有请求进来继续尝试连接宕机应用且仅尝试1次,如果还是失败,则继续等待10秒以此循环,直到恢复
worker_processes  1;
events {
worker_connections 1024;
}


http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
#gzip on;
upstream tomcat {
server 192.168.200.132:8080 weight=1 max_fails=3 fail_timeout=10s;
server 192.168.200.132:8081 weight=1 max_fails=3 fail_timeout=10s;
server 192.168.200.132:8082 weight=1 max_fails=3 fail_timeout=10s;
}
server {
listen 80;
server_name www.yjs21322.com;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {
root html;
index index.html index.htm;
proxy_pass http://tomcat;
}
#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
nginx -t 检查Nginx配置文件语法,出现successful即为成功
systemctl restart nginx 重启Nginx
创建每个Tomcat的网站目录,在Tomcat目录下,创建名为app1的文件夹,三个Tomcat都是,然后用echo直接创建并编写index.jsp的内容。
cd /usr/local/tomcat/webapps/
mkdir app1
echo '<%out.println("This is tomcat-1 yjs"); %>' > /usr/local/tomcat/webapps/app1/index.jsp

cd /usr/local/tomcat1/webapps/
mkdir app1
echo '<%out.println("This is tomcat-2 213"); %>' > /usr/local/tomcat1/webapps/app1/index.jsp

cd /usr/local/tomcat2/webapps/
mkdir app1
echo ' <%out.println("This is tomcat-3 潘杰伦"); %>' > /usr/local/tomcat2/webapps/app1/index.jsp

映射域名并验证

在物理机C:\Windows\System32\drivers\etc目录改hosts文件
映射192.168.200.132 www.yjs21322.com
访问www.yjs21322.com/app1/
即可看到轮询,验证了Tomcat的负载均衡