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

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

1.nginx 安装

yum install nginx

2. 配置nginx

nano /etc/nginx/nginx.conf


 
 
  1. upstream centos7.linbsoft.com {
  2. server centos7.linbsoft.com: 8201 weight= 1;
  3. server centos7.linbsoft.com: 8202 weight= 2;
  4. }
  5. server {
  6. listen 80;
  7. server_name centos7.linbsoft.com;
  8. location / {
  9. proxy_pass http: //centos7.linbsoft.com;
  10. proxy_set_header Host $host:$server_port;
  11. }
  12. error_page 500 502 503 504 / 50x.html;
  13. location = / 50x.html {
  14. root html;
  15. }
  16. }

这是 把访问 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 如下


 
 
  1. server.port= 8201 //另一个zuul为8202
  2. spring.application.name=MicroserviceZuulServer
  3. eureka.client.serviceUrl.defaultZone=http: //admin:123@centos7.linbsoft.com:8101/eureka/,http://admin:123@microservice1.linbsoft.com:8102/eureka/
  4. spring.session.store- type=none
  5. zuul.routes.servicea.path=/servicea /**
  6. 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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值