通过zuul替代部分nginx功能让配置更清晰 - Go语言中文社区

通过zuul替代部分nginx功能让配置更清晰


背景因素:

    由于公司环境各个环境(dev test pre prod)的配置不一致,而且配置较为复杂通过nginx进行配置文件可读性较差,导致上线时会有各种配置问题。

   目前项目主要存在两点问题

            1、跨域问题(前端通过option调用其他服务)

            2、配置沟通不畅

 

解决方式

    我们自己通过gateway进行转发配置,通过后端程序来进行转发配置,这样配置透明能够通过查看git配置文件看到各个转发到某个位置(或者通过url)

    上传:方式1、访问路径前追加“/zuul/**”   参考:https://blog.csdn.net/u014401141/article/details/78713054

               方式2、通过nginx做下配置

 

 

思路

   我们目前环境必定有一个路径指定到我们的项目 加入该项目的content-path为common 例如dev环境为   https://devword.xxxx.cn/common 该地址直接指向common 我们基于该地址配置路径进行转发。

通过分析gateway项目发现只容许 /common/api/** 路径通过gateway访问common项目,所以我们加了一个路径为api/forward/**转发到gateway项目让gateway项目自己处理一些用户校验等工作,这样前端就可以通过这个访问啦。

 

需要注意:

前端对 gateway  不要写死,要写成变量,可能各个环境不一致

优点

 1、通过自己转发管理清晰。

 2、前端所有接口都走common不会出现跨域问题

 3、与运维沟通时间大幅度减少

 4、清晰的知道前端到底调用了那些服务,以及外部接口

 

缺点

1、gateway本身就是转发,我们相当于单独启动了一个gateway

2、内部服务通过gateway转发到common——> gateway这样相当于多次转发,但是由于用的内网可以忽略

 

 

转发外部接口例:

zuul:
 routes:
 baidu:
 path: /api/forward/baidu/**
      sensitiveHeaders: Cookie,Set-Cookie,Authorization  # blacklist,如果不过滤,则须显式设为空。
 url: https://www.baidu.com/

 

需要修改

 1、前端对各个接口转发路径

 2、后端配置转发路径

 

 

参考文档

https://blog.csdn.net/chenqipc/article/details/53322830

https://blog.csdn.net/mn960mn/article/details/51832753

https://blog.csdn.net/u013815546/article/details/68944039

 

不转发敏感信息  https://segmentfault.com/a/1190000010329757

gateway动态修改url: http://www.jb51.net/article/123405.htm

官网文档:https://cloud.spring.io/spring-cloud-netflix/multi/multi__router_and_filter_zuul.html

 

欢迎大家转载,转载时请注明原文地址

 

https://blog.csdn.net/weixin_41805044/article/details/80238613

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_41805044/article/details/80238613
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-02-29 21:25:34
  • 阅读 ( 1435 )
  • 分类:Go Web框架

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢