学习笔记:微服务-8 ngnix+zuul 实现高可用负载均衡

36 篇文章 0 订阅
28 篇文章 2 订阅

本次学习实现如下图的红框部分

1.nginx 安装

yum install nginx

2. 配置nginx

nano /etc/nginx/nginx.conf

upstream  centos7.linbsoft.com {
    server    centos7.linbsoft.com:8201  weight=1;
    server    centos7.linbsoft.com:8202  weight=2;
}

server {
    listen	 80;
    server_name centos7.linbsoft.com;

location / {
	proxy_pass http://centos7.linbsoft.com;
        proxy_set_header Host $host:$server_port;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

这是 把访问 http://centos7.linbsoft.com:80 的url 轮询方式导向  http://centos7.linbsoft.com:8201 和http://centos7.linbsoft.com:8202  而这两个网址就是spring zuul1 和zuul2 的服务网址端口

3. 关闭防火墙

systemctl stop firewalld

setsebool -P httpd_can_network_connect 1   //不然显示nginx 权限不够
或 
vim /etc/selinux/config
SELINUX=disabled

4. spring boot项目创建zuul server

参见我的上篇学习文章  https://blog.csdn.net/oLinBSoft/article/details/85270448

zuul1和zuul2可以完全一样,就是同一个jar文件发布到不同的ip微服务上,端口,应用名等都一样,唯一不同是部署在不同的ip或域名上

我在学习环境中在同一个eclipse这启动,就把两个zuul的端口设置成一个8201,另一个8202,其他都一样

application,properties 如下

server.port=8201  //另一个zuul为8202
spring.application.name=MicroserviceZuulServer
eureka.client.serviceUrl.defaultZone=http://admin:123@centos7.linbsoft.com:8101/eureka/,http://admin:123@microservice1.linbsoft.com:8102/eureka/
spring.session.store-type=none

zuul.routes.servicea.path=/servicea/**
zuul.routes.servicea.serviceId=MicroserviceServiceA8801

5.当前项目如图

6.启动测试,访问 http://centos7.linbsoft.com

会交替出现访问http://centos7.linbsoft.com:8201 和http://centos7.linbsoft.com:8202的效果

访问 zuul代理的 serviceA,只要zuul1,zuul2至少有一个服务开启,都能正常访问

使用nginx的另外一个好处就是屏蔽了nuul内部服务的api显示,浏览器显示的都是nginx的url,在外面看到的好像是只有一个网站,而不是在一堆微服务中不断跳转。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值