使用nginx实现负载均衡

1.随便创建一个项目,提供一个test接口,但是要能区分出访问的是哪个服务

我这边随手创建了一个springboot项目,和一个测试接口,使用请求端口号来区分是否实现负载均衡

*************************************************************************************
@RestController
public class TestController {

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

    @RequestMapping("")
    public String hello() {
        System.out.println("call me " + port);
        return "i am " + port;
    }
}
*************************************************************************************

创建完后将项目打成jar包,都到这儿了,怎么打包就不多赘述了

2.将项目运行在服务器上

我这边准备了两台服务器,在其中一个服务器上运行了两次
1号服务器	 8001    and    8002          
2号服务器     8003

linux运行jar包: java -jar test.jar --server.port=8001/8002/8003
确保程序正常运行就好

3.从docker下载nginx镜像并启动

具体请参照我的博客  << 阿里云服务器构架java生产环境-9:docker安装nginx >>

4.找到负载均衡服务器的nginx目录,配置服务器地址及端口

编辑nginx的配置文件									vim nginx.conf	
新增负载均衡的配置
----------------------------------------------------------------------------------
user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
	worker_connections  1024;
}


http {
	include       /etc/nginx/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  /var/log/nginx/access.log  main;

	sendfile        on;
	#tcp_nopush     on;

	keepalive_timeout  65;

	#gzip  on;

	upstream upstream_name{
    	server 39.100.151.236:8003 weight=3;
    	server 39.98.63.4:8001 weight=2;
    	server 39.98.63.4:8002 weight=1;
	}
	server {
    	listen       80;
    	server_name  localhost;

    	location / {
         	proxy_pass http://upstream_name;
         	proxy_set_header Host $host;
         	proxy_set_header X-Real-IP $remote_addr;
         	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    	}
	}
}
----------------------------------------------------------------------------------

5.启动docker的nginx容器,进行测试

	启动容器 				docker start nginx
	测试						curl:localhost:8088(我的nginx端口号是8088,多次请求就会发现已经实现负载均衡了)
	详情请参照图3

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值