tomcat负载均衡-nginx

目录

1.软件介绍

2.对应的地址

3.安装ngnix

3.1安装插件支持

3.2防火墙设置

4.配置ngnix的conf/nginx.conf文件

5.测试访问

5.1eclipse创建一个web项目Test,打成war包,上传到tomcat1

5.2将Test项目index修该成如下,上传到tomcat2

6.nginx扩展学习

6.1nginx的操作

6.2nginx.cof详解

6.3Nginx日志格式


1.软件介绍

负载均衡集群:将大量的并发请求分担到多个处理节点。由于单个处理节点的故障不影响整个服务,负载均衡集群同时也实现了高可用性。可以结合Nginxs与Tomcat实现。如下图所示。

Nginx:是一款性能优异的反向代理服务器。

Tomcat服务器:Sun公司在推出的小型Servlet/JSP调试工具的基础上发展起来的一个优秀的Servlet容器,Tomcat本身完全用java语言编写,所以tomcat的运行需要java的支持,所以要先安装JDK,才能运行。

 

2台linux服务器,分别装上tomcat,这里我们用虚拟机创建两台linux服务器。

     1台ngnix服务器,我们装在其中一台linux服务器上。

 

2.对应的地址

tomcat1地址: 192.168.0.143:8080

tomcat2地址:192.168.0.157:8080

nginx地址:  192.168.0.157:80

 

3.安装ngnix

3.1安装插件支持

            //1.GCC 安装:
# yum install gcc-c++       
            //2.PCRE pcre-devel安装:    
# yum install -y pcre pcre-devel   
            //3.ZLIB安装:
# yum install -y zlib zlib-devel      
            //4.OpenSSL 安装:
# yum install -y openssl openssl-devel  
            //5.下载Nginx,也可以本地下载压缩包上传到服务器。
# wget -c https://nginx.org/download/nginx-1.10.1.tar.gz    

//6.安装

            //6.1 解压
# tar -zxvf nginx-1.10.1.tar.gz   
            //6.2 配置Nginx,进入压缩目录
#  ./configure
            //6.3编译	
# make
            //6.4查找安装路径	
# make install
            //6.5 查找安装路径	
# whereis nginx
            //6.6 查看版本	
# nginx -v

成功显示路径及版本则安装成功,

默认安装路径位于 /usr/local/nginx/

 

3.2防火墙设置

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

重启防火墙:service iptables restart

 

4.配置ngnixconf/nginx.conf文件

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

http {
    upstream  test{
         server ip:192.168.0.143:8080 weight=5;
         server ip:192.168.0.157:8080 weight=1;
    }

    server{
        listen  80;
        server name:localhost;
        location /{
            proxy_pass   http:test;
        }
    }

}   
  • 192.168.0.143:8080          tomcat1的ip+端口  
  • weight                                   权重比,上面的配置意思是访问143ip五次,访问157ip一次,5:1的访问比例。
  • listen 80                                 nginx的端口,一般不改
  • server_name: localhost        不改动,这里是nginx的ip地址,我们配置在哪台服务器都是用localhost。
  • proxy_pass   http:test;          写我们upstream的方法名。

 

 

5.测试访问

5.1eclipse创建一个web项目Test,打成war包,上传到tomcat1

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>

<% String id=request.getParameter("id");
%>
<body>
	tomcat 第11111台	<br>
	 <%=id%>	<br>
</body>
</html>

浏览器访问:   192.168.0.157/Test?id=56456

   页面显示 

       tomcat第1111台

       56456

5.2将Test项目index修该成如下,上传到tomcat2

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>

<% String id=request.getParameter("id");
%>
<body>
	tomcat 第2222台	<br>
	 <%=id%>	<br>
</body>
</html>

浏览器访问:   192.168.0.157/Test?id=56456

    页面返回
      tomcat第2222台

      56456

如上操作,说明负载均衡搭建成功,nginx帮我们分布到不同tomcat上。

 

6.nginx扩展学习

6.1nginx的操作

cd /usr/local/nginx/sbin

./nginx

启动:

./nginx -s stop

停止

./nginx -s reload

刷新配置

kill -TERM pid

 快速停止服务

kill -QUIT pid 

平缓停止服务

kill -9 pid    

强制停止服务

ps -aux | grep nginx

查看有关nginx的进程

./nginx -t

检查配置文件是否正确

6.2nginx.cof详解

# 全局区   有一个工作子进程,一般设置为CPU数 * 核数

        worker_processes  1;

        events {

                # 一般是配置nginx进程与连接的特性

                # 如1个word能同时允许多少连接,一个子进程最大允许连接1024个连接

                worker_connections  1024;

        }

 

        # 配置HTTP服务器配置段

        http {

 

                # 配置虚拟主机段

                    server {

                   

                        # 定位,把特殊的路径或文件再次定位。

                location  {

                  

                }

            }

 

            server {

                       ...

            }

        }

 

6.3Nginx日志格式

打开nginx.conf配置文件: #access_log  logs/access.log  main;

日志生成的到Nginx根目录logs/access.log文件,默认使用“main”日志格式

 参数明细表:

 

$remote_addr

客户端的ip地址(代理服务器,显示代理服务ip)

$remote_user

用于记录远程客户端的用户名称(一般为“-”)

$time_local

用于记录访问时间和时区

$request

用于记录请求的url以及请求方法

$status

响应状态码,例如:200成功、404页面找不到等。

$body_bytes_sent

给客户端发送的文件主体内容字节数

$http_user_agent

用户所使用的代理(一般为浏览器)

$http_x_forwarded_for

可以记录客户端IP,通过代理服务器来记录客户端的ip地址

$http_referer

可以记录用户是从哪个链接访问过来的

猜你喜欢

转载自blog.csdn.net/qq_42035966/article/details/82086445