准备工作 下载 1 2 3 https:// www.oracle.com/java/ technologies/downloads/ http:// tomcat.apache.org/ http:// nginx.org/download/
在 /usr 目录下新建一个 ftp 文件夹
把 nginx-1.15.10.tar.gz apache-tomcat-9.0.17.tar.gz jdk-8u181-linux-x64.tar.gz安装包上传到 ftp 目录下
这里为了后续方便 建议把防火墙关闭
防火墙 方式一:
1 2 3 4 systemctl status firewalld ====查看防火状态 systemctl stop firewalld ====暂时关闭防火墙 systemctl disable firewalld ====永久关闭防火墙 systemctl enable firewalld ====重启防火墙
方式二:
1 2 3 4 5 6 7 8 9 10 11 12 13 systemctl start firewalld //启动 systemctl status firewalld //查看状态 systemctl stop firewalld //停止 systemctl disable firewalld //禁用 systemctl enable firewalld.servic //开机自动启动 systemctl restart firewalld.service //重启 开启某个端口、服务 (--permanent永久生效,没有此参数重启后失效) firewall-cmd --permanent --zone=public --add-port=80/tcp //永久开启80端口 firewall-cmd --zone=public --add-port=80/tcp //临时开启80端口 firewall-cmd --zone=public --add-service=https //临时 firewall-cmd --permanent --zone=public --add-service=https / /永久 firewall-cmd --zone=public --list-ports //查看开放的端口有哪些 firewall-cmd --reload //**重载** 修改配置文件后 使用命令重新加载 更新防火墙规则
Tomcat安装配置 JDK安装 解压
1 2 3 cd /usr/ftp tar -zvxf jdk-8u181-linux-x64.tar.gzmv jdk1.8.0_181 /usr/local
把环境变量追加入到 /etc/profile 下 配置
把下方配置追加到 /etc/profile 尾部 注意JDK的实际路径
1 2 3 4 export JAVA_HOME =/usr/local/jdk1.8.0_181export JRE_HOME =$JAVA_HOME /jreexport CLASSPATH =$CLASSPATH :.:$JRE_HOME/lib:$JAVA_HOME/libexport PATH =$PATH :$JAVA_HOME/bin:$JRE_HOME/bin
然后重新配置 profile 使其变量生效
输入 java -version 出现如下就说明 JDK 已经配置成功了
Tomcat安装 解压
1 2 3 cd /usr/ftptar -zvxf apache-tomcat-9 .0 .17 .tar.gzmv apache-tomcat-9 .0 .17 /usr/local/tomcat1
把环境变量追加入到 /etc/profile 下 配置
把下方配置追加到 /etc/profile 尾部 注意tomcat的实际路径
1 2 3 export CATALINA_BASE =/usr/local/tomcat1export CATALINA_HOME =$CATALINA_BASE export TOMCAT_HOME =$CATALINA_BASE
然后重新配置 profile 使其变量生效
启动 Tomcat 如果是在 tomcat 下的 bin 目录下就执行
在其他目录下执行
1 sh /usr/local /tomcat1/bin/startup.sh
停止运行 同上
1 2 sh shutdown.sh = = = = bin目录下 sh /usr/local/tomcat1/bin/shutdown.sh = = = = 其他目录下
Nginx安装配置 安装依赖 正式安装Nginx之前需要给操作系统下载好必要的依赖
yum install gcc gcc-c++ openssl automake autoconf make libtool pcre pcre-devel zlib openssl-devel zlib-devel
创建 Nginx 用户组 1 2 groupadd nginx useradd -m -s /sbin/ nologin -g nginx nginx
安装编译 进入Nginx解压目录下 安装指定到 /usr/local/ 目录下的 nginx-1.15.10、编译
1 2 3 4 5 6 cd /usr/ftp tar -zvxf nginx-1.15.10.tar.gzmv nginx-1.15.10 /usr/local cd /usr/local/nginx-1.15.10 ./configure --prefix=/usr/local/nginx make && make install
启动 超级管理员运行 Nginx
1 2 sudo /usr/ local/nginx/ sbin/nginx sudo /usr/ local/nginx/ sbin/nginx -s reload ---重启
Nginx代理负载Tomcat
负载均衡 数以万计算 百万 千万的用户 同时访问同一台服务器,再好的性能也扛不住。 负载均衡就是 准备了很多台镜像服务器,但是由一个代理服务器帮助用户选择内容服务器。 代理 张三 和李四 都是菜贩 摊位挨着,李四上厕所了,让张三代理一下,有人来买李四的菜吗,拿 李四的 菜 收的钱放李四的盒子 找的钱从李四的盒子 (这些事都是张三代理)
Tomcat配置 复制多个 tomcat
1 2 3 cd /usr/local/cp -r tomcat1 tomcat2cp -r tomcat1 tomcat3
加入 tomcat2 tomcat3 的环境变量
1 2 3 4 5 6 7 8 9 10 vi /etc/profile 在 Tomcat1 下方添加 Tomcat2 Tomcat3export CATALINA_BASE2 =/usr/local/tomcat2export CATALINA_HOME2 =$CATALINA_BASE2 export TOMCAT_HOME2 =$CATALINA_BASE2 export CATALINA_BASE3 =/usr/local/tomcat3export CATALINA_HOME3 =$CATALINA_BASE3 export TOMCAT_HOME3 =$CATALINA_BASE3
配置多个tomcat为什么需要在/etc/profile 修改多个 tomcat 设置
如果不配置,哪个tomcat先启动就认谁的,例如tomcat1设置为123,tomcat2设置为abc,1先启动显示123 ,2先启动就会显示abc
shutdown.sh有时候并不能关闭服务器
ps –ef|grep tomcat ==ps 查看 grep过滤 tomcat想在进程中查找的程序名
找到进程号 使用 kill -9 +进程号 让其停止运行 然后重新配置 profile 使其变量生效
修改 tomcat2 tomcat3 server.xml中的端口号 tomcat2 如下4处端口依次 +1
1 vi /usr/local /tomcat2/conf/server .xml
1 2 3 4 5 22 <Server port="8006" shutdown="SHUTDOWN" > 8005 >8006 69 <Connector port="8081" protocol="HTTP/1.1" 8080 >8081 70 connectionTimeout="20000" 71 redirectPort="8443" />116 <Connector port="8010" protocol="AJP/1.3" redirectPort="8444" /> 8009 >8010 8443 >8444
tomcat3
1 vi /usr/local /tomcat3/conf/server .xml
1 2 3 4 5 22 <Server port="8007" shutdown="SHUTDOWN" > 8005 >8007 69 <Connector port="8082" protocol="HTTP/1.1" 8080 >8082 70 connectionTimeout="20000" 71 redirectPort="8443" />116 <Connector port="8011" protocol="AJP/1.3" redirectPort="8445" /> 8009 >8011 8443 >8445
启动 tomcat2 tomcat3
1 2 sh /usr/local /tomcat2/bin/startup.sh sh /usr/local /tomcat3/bin/startup.sh
注意对应关系
如何理解,在没有配置tomcat特殊的系统变量的情况下
先启动tomcat1,再启动tomcat2 ,查看只有tomcat1,如果先启动tomcat2,再启动tomcat 只有 tomcat2(谁先启动,谁的路径就注册成了临时的系统路径)
明明tomcat2在执行,执行tomcat1的关闭脚本sh,结果tomcat2被关了
再理解 ,配置profile(系统环境设置)之后,每个tomcat的catalina.sh就不找别人的路径了原因就是因为他找到 了路径
Nginx配置 找到 Server 修改端口
1 2 3 4 5 6 7 8 9 41 server {42 listen 9090 ; ###修改默认端口80 >9090 ,也可以不修改43 server_name localhost; 35 upstream tomcats {36 server 192.168.139.123:8080 weight=1 ;#服务器集群,weight 权重37 server 192.168.139.123:8081 weight=1 ;38 server 192.168.139.123:8082 weight=1 ;39 }
修改配置文件后 在 Server 中的 location /中添加 proxy_pass http://tomcats ; tomcats 和前面的 upstream 的名字相同 配置完效果如下
1 2 3 4 5 6 7 8 9 location / { proxy_set_header HOST $host ; proxy_set_header X-Forwarded-Proto $scheme ; proxy_set_header X-Real-IP $remote_addr ; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ; proxy_pass http://tomcats; }
找到在每个tomcat的 webapp文件夹下的ROOT文件夹 新建1.txt文件,并添加上文字
1 2 3 echo tomcat1 > /usr/ local/tomcat1/ webapps/ROOT/ 1 .txt echo tomcat2 > /usr/ local/tomcat2/ webapps/ROOT/ 1 .txt echo tomcat3 > /usr/ local/tomcat3/ webapps/ROOT/ 1 .txt
然后进入浏览器在,浏览器中使用 http://虚拟机IP:修改的Nginx端口/1.txt 例如 http://192.168.139.123:9090/1.txt 到这里就基本实现了 Nginx 负载多个 Tomcat