nginx配置三台tomcat的负载均衡

从一点半到三点半终于实现了用nginx对三台tomcat实现负载均衡。
现在记录一下整个实现的过程。
第一步
我准备了三台服务器
192.168.32.130 spark1
192.168.32.131 spark2
192.168.32.132 spark3
第二步
分别在三台服务器上安装了tomat
第三步
编写 一个java程序 打成war包 并发布到tomcat上

package com.imooc.myo2o.web.test;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.net.InetAddress;

@Controller
@RequestMapping(value = "test")
public class TestController {
    @RequestMapping(value = "/host")
    @ResponseBody
    private String test(){
        String host = null;
        try{
            host = InetAddress.getLocalHost().getHostName();
            System.out.println("打印Host: "+host);
        }catch (Exception e){
            e.printStackTrace();
        }
        return host;
    }
}

第四步
配置nginx
如果还没有安装nginx,以下安装nginx的详细教程可以参考
https://blog.csdn.net/qq_37554565/article/details/90713663
安装完nginx后接着配置 /usr/local/nginx/conf/nginx.conf

主要是配置

upstream tomcats {
       server 192.168.32.130:8080 weight=1;
       server 192.168.32.131:8080 weight=1;
       server 192.168.32.132:8080 weight=1;
    }
    和
    server的
    location ~ .* {
            proxy_pass http://tomcats;
            root   html;
            index  index.html index.htm;
    }

以下面是nginx.conf的完整内容


#user  nobody;
worker_processes  1;

#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;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
    upstream tomcats {
       server 192.168.32.130:8080 weight=1;
       server 192.168.32.131:8080 weight=1;
       server 192.168.32.132:8080 weight=1;
    }
    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location ~ .* {
            proxy_pass http://tomcats;
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

}

第五步 启动nginx

# 检验文件
[root@spark1 nginx]# sbin/nginx -t 
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
# 加载修改文件
[root@spark1 nginx]# sbin/nginx -s reload
[root@spark1 nginx]# sbin/nginx

第六步 访问测试端口
页面访问 http://192.168.32.130/shop/test/host 的接口会平均分发到spark1、spark2、spark3上
如图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
到这里就实现了用nginx实现对一个请求分散到三台服务器了。

你可能感兴趣的:(nginx)