nginx反向代理与负载均衡实例(Springboot+Idea)

nginx反向代理与负载均衡实例(Springboot+Idea)

1、在idea中新建一个springboot工程

nginx反向代理与负载均衡实例(Springboot+Idea)_第1张图片
nginx反向代理与负载均衡实例(Springboot+Idea)_第2张图片
接下来删除src目录,创建多模块项目。

2、创建两个子模块

nginx反向代理与负载均衡实例(Springboot+Idea)_第3张图片
创建子模块demo1,在java目录下分别创建程序入口App.java和HelloController.java源文件
App.java源代码:

package com.zut;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class App {

    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}


HelloController.java源代码:

package com.zut.controller;


        import org.springframework.beans.factory.annotation.Value;
        import org.springframework.web.bind.annotation.RequestMapping;
        import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("")
public class HelloController {

    @Value("${server.port}")
    private String port;

    @RequestMapping("")
    public String hello()
    {
        return "该服务器的端口是:"+port;
    }

    @RequestMapping("/hello")
    public String hello2()
    {
        return "该服务器的端口是:"+port+"我是hello";
    }

}

接下来在resoures目录下创建一个applicaton.yml配置文件

server:
  port: 8081

创建子模块demo2与demo1完全一样,唯一不同的是application.yml文件中的端口号,因为后面需要同时开启两个模块,避免端口占用。

server:
  port: 8080

3、修改nginx配置文件

在nginx的conf目录中,找到nginx.conf
nginx反向代理与负载均衡实例(Springboot+Idea)_第4张图片
nginx反向代理与负载均衡实例(Springboot+Idea)_第5张图片
在#gzip on 下面增加以下配置

#配置负载均衡的两台服务器,nginx会轮询一下两个服务器
  upstream balance{
          server 127.0.0.1:8080;  #对应demo1项目的tomcat端口
          server 127.0.0.1:8081;  #对应demo2项目的tomcat端口
        }
 

    server {
        listen       80;     
        server_name  localhost;  #待会在浏览器中输入localhost

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
	    proxy_pass http://balance;  #反向代理核心配置,该配置说明当输入                        
            #root   html;                    #localhost时会到balance对应的配置服务器中
            index  index.html index.htm;
        }

4、然后双击nginx.exe,启动nginx,同时启动demo1,demo2

nginx反向代理与负载均衡实例(Springboot+Idea)_第6张图片
nginx反向代理与负载均衡实例(Springboot+Idea)_第7张图片
说明项目demo1,demo2启动成功,可以在任务管理器中查看nginx是否启动成功
nginx反向代理与负载均衡实例(Springboot+Idea)_第8张图片

4、运行结果

在浏览器中输入localhost
nginx反向代理与负载均衡实例(Springboot+Idea)_第9张图片
当刷新页面时发现走到了8081端口,说明通过nginx的负载均衡机制,交叉转发服务到两个不同的服务器中
nginx反向代理与负载均衡实例(Springboot+Idea)_第10张图片

这就是最基本的负载均衡的例子。通过nginx的代理功能将拦截的请求通过upstream的规则进行转发。

你可能感兴趣的:(nginx,反向代理,负载均衡)