欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

tomcat负载均衡-nginx

程序员文章站 2022-07-13 08:39:18
...

目录

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,才能运行。

tomcat负载均衡-nginx

 

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

tomcat安装教程:https://blog.csdn.net/qq_42035966/article/details/82082698

java安装教程:https://blog.csdn.net/qq_42035966/article/details/82083061

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

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