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

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

学习笔记:微服务-8 ngnix+zuul 实现高可用负载均衡_第1张图片

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:[email protected]:8101/eureka/,http://admin:[email protected]:8102/eureka/
spring.session.store-type=none

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

5.当前项目如图

学习笔记:微服务-8 ngnix+zuul 实现高可用负载均衡_第2张图片

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

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

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

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

你可能感兴趣的:(系统集成,java,spring,cloud,spring,zuul)