Linux 下 tomcat基于nginx做负载均衡

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 下 tomcat基于nginx做负载均衡相关的知识,希望对你有一定的参考价值。

测试目的:在一台装有nginx服务器上访问nginx这台的ip地址,刷新一次就会显示后端三台不同的tomcat服务器的测试页。

测试环境:三台centos 6.8

                 一台 centos 7.3

软件版本: nginx 1.12.1

                  tomcat 8

软件部署的话 就不操作了 之前已经部署好了的,不会的话 看我之前的博客里都有。

nginx 安装

http://dklwj.blog.51cto.com/9199080/1949570


tomcat 安装:

http://dklwj.blog.51cto.com/9199080/1955403


在三台tomcat上做些修改 

1、把/usr/local/tomcat/webapps下原有的东西都删了除ROOT目录留着,不过ROOT目录下的东西可以清空然后把咱自己用到的测试页及所需用到的文件佳放进去。

[[email protected] ROOT]# ls

classes  index.jsp  lib  META-INF  WEB-INF  --这几个文件的话是java必须有的文件

然后编辑index.jsp文件,后面两个的话 从第一个配置好的服务器拷贝过去 修改下里头的标题这里的话 我就用A、B、C 来代替三台服务器页面的测试标题。然后保存退出即可。

[[email protected] ROOT]# vim index.jsp 

<%@ page language="java" %>

<html>

        <head>

                <title>tomcatB</title>

        </head>

        <body>

                <h1><font color="blue"> tomcatB.dklwj.com</font></h1>

                <table align="centre" border="1">

                <tr>

                  <td>Session ID</td>

          <% session.setAttribute("dklwj.com","dklwj.com"); %>

                <td> <%= session.getId() %></td>

                </tr>

                <tr>

                   <td>Created on </td>

                   <td><%= session.getCreationTime() %></td>

                </tr>

            </table>

        </body>

</html>

启动tomcat  

[[email protected] ~]$ /usr/local/tomcat/bin/startup.sh

Using CATALINA_BASE:   /usr/local/tomcat

Using CATALINA_HOME:   /usr/local/tomcat

Using CATALINA_TMPDIR: /usr/local/tomcat/temp

Using JRE_HOME:        /usr/local/jdk

Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

Tomcat started.

用ss -tnl看下端口是否被监听

[[email protected] ~]# ss -tnl

State      Recv-Q Send-Q                              Local Address:Port                                Peer Address:Port 

LISTEN     0      1                                ::ffff:127.0.0.1:8005                                          :::*     

LISTEN     0      100                                            :::8009                                          :::*     

LISTEN     0      100                                            :::8080                                          :::*     

LISTEN     0      128                                            :::22                                            :::*     

LISTEN     0      128                                             *:22                                             *:*     

其它两台tomcat配置一样这里就忽略了。

配置nginx服务器

[[email protected] ~]# cd /etc/nginx/

[[email protected] nginx]# vim nginx.conf

在http配置栏下 增加以下一段

    upstream tcsrvs {

        server 192.168.2.32:8080;

        server 192.168.2.38:8080;

        server 192.168.2.39:8080;


    }

在server配置里头加上,然后保持退出;

  server {

        listen       80;

        server_name  localhost;


        #charset koi8-r;


        #access_log  logs/host.access.log  main;


        location / {

            root   html;

            index  index.html index.htm;

           proxy_pass http://tcsrvs;

        }

用nginx -t 检查配置文件是否报错。

[[email protected] nginx]# nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

[[email protected] nginx]# 

然后浏览器验证:一刷新就跳到其它两台上去,说明测试成功了。

技术分享

技术分享

技术分享

有些地方有问题的,还请各位大佬指出来!万分感谢!!

以上是关于Linux 下 tomcat基于nginx做负载均衡的主要内容,如果未能解决你的问题,请参考以下文章

Linux下Nginx+多Tomcat负载均衡实现详解

nginx+tomcat负载均衡策略

linux下:nginx+tomcat实现负载均衡

在Linux上使用Nginx为Solr集群做负载均衡

Linux下nginx+多个Tomcat负载均衡的实现

Linux下搭建一个nginx+2tomcat负载均衡环境