nginx+tomcat实现负载均衡集群

一台tomcat站点由于可能出现单点故障及无法应付过多客户复杂多样的请求等问题,不能单独应用于生产环境下 所以需要一套可靠的解决方案来完善web站点架构 而Nginx只能访问静态页面,如果需要动态需要通过tomcat去解析jsp的页面。 实验为了缓解Nginx访问压力,做了两台tomcat做负载均衡,目的实现Nginx访问时,可以访问jsp页面 由tomcat做解析 ,当用户访问jsp页面时,有两台tomcat分担压力,而nginx是一款非常优秀的web服务器,很多大型网站都用nginx服务器做后端网站 程序的反向代理及负载均衡器,来提升整个站点的负载并发能力

nginx 服务器   192.168.30.24

tomcat 服务器1 192.168.30.21

tomcat 服务器2 192.168.30.22

安装tomcat8步骤

rm -rf /usr/bin/java

java -version

tar xf jdk-8u191-linux-x64.tar.gz

mv jdk1.8.0_191/ /usr/local/java

vim /etc/profile

export JAVA_HOME=/usr/local/java

export PATH=$PATH:$JAVA_HOME/bin

source /etc/profile

java -version

tar xf apache-tomcat-8.5.16.tar.gz

mv apache-tomcat-8.5.16 /usr/local/tomcat8

/usr/local/tomcat8/bin/startup.sh

netstat -anpt |grep :8080

安装tomcat1和tomcat2配置一样,测试页可以修改成test2,可以看到区别

vim /usr/local/tomcat8/conf/server.xml

148   <Host name="localhost"  appBase="webapps"            

         unpackWARs="true" autoDeploy="true">        

         <Context docBase="/web/webapp" path="" reloadable="flase" >        

         </Context>

cp /usr/local/tomcat8/conf/server.xml{,bak}   

把配置文件做备份,并放在同一目录下

mkdir /web cd

/web mdkir webapp

vim /web/webapp/index.jsp

建立一个web目录,并在里面建立一个webapp 目录,用于存放网站文件

在webapp目录下建立一个index.jsp的测试页面

<%@ page language="java" import="java.util.*"

pageEncoding="UTF-8"%>

<html>        

      <head>                

                    btitle>JSP test2 page</title>        

      </head>        

<body>                

<% out.println("Welcome to test site,http://www.test2.com");%>     

</body>

</html>

/usr/local/tomcat8/bin/shutdown.sh

/usr/local/tomcat8/bin/startup.sh

测试:http://192.168.30.22:8080,出现http://www.test2.com

配置Nginx

cp /usr/lcoal/nginx/conf/nginx.conf{,.bak}

vim /usr/local/nginx/conf/nginx.conf

upstream连接指定上两台tomcat,下面是nginx主配置文件

 user  nginx; worker_processes  2;

#error_log  logs/error.log; #error_log  logs/error.log  notice; #error_log  logs/error.log  info;

pid        logs/nginx.pid;

events {     worker_connections  1024; }

http {     include       mime.types;     default_type  application/octet-stream;

                      '$status $body_bytes_sent "$http_referer" '                       '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  logs/access.log  main;

    sendfile        on;

    keepalive_timeout  65;         upstream tomcat_server {     server 192.168.30.21:8080 weight=1;     server 192.168.30.22:8080 weight=1;     server 192.168.30.23:8080 weight=1 backup; }

    server {         listen       80;         server_name  localhost;

        charset utf-8;

        access_log  logs/local.access.log  main;

        location / {             root   html;             index  index.html index.htm;         }

        location ~.jsp$ {                 proxy_pass http://tomcat_server;         }         #error_page    500 502 503 504  /50x.html;         #location = /50x.html {         #       root html;

}     server {         listen       81;         server_name  www.cloud.com;

        charset utf-8;

        access_log  logs/cloud.access.log  main;

        location / {             root   html/cloud;             index  index.html index.html;         }      } }

重启Nginx,

killall -HUP nginx

访问http://192.168.30.24/index.jsp切换,可以访问到其他两台tomcat上的内容

upstream 相当于负载均衡       把server下的指定web(tomcat)上的服务器解析,请求上游,发送 至下游,给proxy_pass,解析出jsp页面 proxy_pass 相当于反向代理    把jsp页面的文件代理给tomcat_server

公司也可以做一个备份源的tomcat,这个页面的话,如果配置文件添加backup,那么正常开启的情况下 不会访问到这台服务器,如果tomcat原始的服务器宕机,那么这个备份的tomcat会自动匹配到这台 服务器上

keepalive_timeout  65;        

upstream tomcat_server {    

server 192.168.30.21:8080 weight=1;    

server 192.168.30.22:8080 weight=1;    

server 192.168.30.23:8080 weight=1 backup; 

实验/usr/local/tomcat8/bin/shutdown.sh    Tomcat1

/usr/local/tomcat8/bin/shutdown.sh        Tomcat2

访问http://192.168.30.24/index.jsp,这个页面会切换到tomcat3上

原文地址:https://www.cnblogs.com/zc1741845455/p/10601284.html