Nginx+Tomcat集群负载均衡实验

实验部署

【调度器1】 192.168.100.87
【WEB1】 192.168.100.86
【WEB2】 192.168.100.89

实验步骤

对web服务器进行配置

这里需要安装java可以用yum安装也可以把包传到虚拟机编译安装
yum -y install java-1.8.0-openjdk

systemctl stop firewalld
setenforce 0
#关闭防火墙 关闭核心防护
tar xf jdk-8u144-linux-x64.tar.gz                  ##### 解压安装包
cp -rv jdk1.8.0_144/ /usr/local/java               #####复制文件
vi /etc/profile				##文件最下添加下面的内容
export JAVA_HOME=/usr/local/java   		   ####新增
export JRE_HOME=/usr/local/java/jre    		   ####新增
export PATH=$PATH:/usr/local/java/bin   	   ####新增
export CLASSPATH=./:/usr/local/java/lib:/usr/local/java/jre/lib ####新增

source /etc/profile                   #####让刚才编辑的环境变量生效
java -version                         #####检查java版本

安装tomcat 首先建tomcat的包传到/opt下面

tar xf apache-tomcat-8.5.23.tar.gz
cp -r apache-tomcat-8.5.23 /usr/local/tomcat8
ln -s /usr/local/tomcat8/bin/startup.sh /usr/bin/tomcatup                      #####创建启动软连接tomcatup      
ln -s /usr/local/tomcat8/bin/shutdown.sh /usr/bin/tomcatdown            #####创建关闭软连接tomcatdown
tomcatup
tomcatdown
netstat -anpt | grep 8080
#下面是创建一个测试的页面
mkdir -pv /web/webapp1
vi /web/webapp1/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
        <head>
                <title>JSP test1 page</title>
        </head>
        <body>
                <% out.println("动态页面 1,http://www.51xit.com");%>
        </body>
        <body>
                <div>静态页面的图片 1</div><br><img src="123.jpg">
        </body>
</html>
#下面是定义一个虚拟主机并定义网站文件路径指向已经建立的/web/webapp1
vim /usr/local/tomcat8/conf/server.xml
<Host name="localhost" appBase="webapps"
 unpackWARs="true" autoDeploy="true">
<Context docBase="/web/webapp1" path="" reloadable="false" >  ##新增
</Context>   ##新增

tomcatdown
tomcatup

这个时候去网页测试输入
http://192.168.100.86:8080/ 能看到下面内容
在这里插入图片描述
tomcat2即192.18.100.90的操作步骤和上面的一样 除了就是测试页改动一下方便识别 这里不再写

对nginx服务器进行配置首先将nginx的包传到/opt目录下面

systemctl stop firewalld
setenforce 0
yum -y install pcre-devel zlib-devel openssl-devel gcc-c++
groupadd www
useradd -g www www -s /bin/false
tar xzvf nginx-1.15.9.tar.gz
cd nginx-1.15.9/
./configure --prefix=/usr/local/nginx --user=www --group=www --with-file-aio --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module
make -j3 && make install
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
ls -l /usr/local/sbin/nginx
nginx -t
killall -1 nginx
killall -3 nginx
nginx
netstat -anpt | grep nginx
vi /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking 
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/bin/kill -s HUP $MAINPID
ExecStop=/usr/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

chmod 754 /lib/systemd/system/nginx.service
killall -3 nginx
systemctl enable nginx.service
systemctl start nginx.service
systemctl stop nginx.service
systemctl reload nginx.service
systemctl restart nginx.service
systemctl status nginx.service

首先添加nginx的静态网页文件

vim /usr/local/nginx/html/index.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"> 
<title>静态页面</title>
<style>
   	body {
    
    
  		width: 35em;
  		margin: 0 auto;
  		font-family: Tahoma, Verdana, Arial, sans-serif;
 }
</style>
</head>
<body>
<h1>静态页面</h1>
<p>这是个静态页面</p>
</body>
</html>

下面是对nginx的配置文件进行修改让它有 负载均衡的服务器列表 weight是指的权重 权重越高越优先分配 减配置未见修改如下

vim /usr/local/nginx/conf/nginx.conf 
 …… //省略部分内容
 http {
    
     
……   ###省略部分内容
#gzip on;
upstream tomcat_server {
    
    
	 server 192.168.100.86:8080 weight=1;
	 server 192.168.100.90:8080 weight=1;
 }
server {
    
    
	 listen 80;
 	server_name localhost;
	 #charset koi8-r;
	 #access_log logs/host.access.log main;
 	location ~ .*.jsp$ {
    
    
 		 proxy_set_header HOST $host;
 		 proxy_set_header X-Real-IP $remote_addr;
 		 proxy_set_header Client-IP $remote_addr;
 		 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  		proxy_pass http://tomcat_server;
  }

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {
    
    
 root /usr/local/nginx/html/img;
 expires 30d;
}

location / {
    
    
 root html;
 index index.html index.htm;
}
…… //省略部分内容 
} 
…… //省略部分内容 
} 

下面是对静态图片设置 首先需要传上一个图片

mkdir /usr/local/nginx/html/img
cp /opt/logo.jpg /usr/local/nginx/html/img
#下面是测试配置文件是不是正确和启动nginx服务还有查看nginx服务进程
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ps aux | grep nginx
netstat -anpt | grep nginx

测试效果 下面是测试步骤。

(1)测试静态页面效果 打开浏览器访问 http://192.168.100.87/,可以看到访问到 nginx 静态页面,
(2)测试负载均衡效果 打开浏览器访问 http://192.168.100.87/index.jsp。 不断刷新浏览器测试,
可以看到由于权重相同,页面会反复在以下两个页面来回切换。 第一次访问,出现 test1 的测试页面,
并且能正常加载 nginx 上的静态页面图片,刷新后,第二次访问,出现 test2 的测试页面,
示。,就说明负载均衡群集搭建成功,已经可以 在两个 Tomcat server 站点进行切换了。
在这里插入图片描述
##########################
##########################

这个实验总结遇到的报错有下面几个

一、在对web进行配置设置软连接的时候没报错 但是使用tomcatup启动的时候报错
在这里插入图片描述
解决办法:检查上面的内容有哪些有错误发现软连statup.sh没有打上.sh然后再重新创建的发现不能创建报已经存在 于是用下面方法解决
在这里插入图片描述
问题二、在这里插入图片描述
问题三、做nginx的测试页的时候不管怎么都没有办法保存 报权限不够 可明明已经是root权限了 后来检查发现这个文件是挂载在别的主机的于是 注释永久挂载 后卸载后正常的能保存了
在这里插入图片描述
问题四、做网页测试的时候一切现实不出来图片 查找原因是因为web的动态页面处理服务器的html文件中的图片名和nginx不一样 该为一样后一切正常

猜你喜欢

转载自blog.csdn.net/Laiyunpeng666/article/details/108797519