API 网关只是用来保护或路由 API 的吗 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
daijinming
V2EX    程序员

API 网关只是用来保护或路由 API 的吗

  •  
  •   daijinming 2019-06-03 11:40:38 +08:00 4919 次点击
    这是一个创建于 2327 天前的主题,其中的信息可能已经有所发展或是发生改变。

    微服务中的 API Gateway 感觉好像是个很高端的产品,听名字好像就是用来保护和路由 API 的,我考虑在前后台分离的场景下,也把静态网站放网关后面,不知道有这么弄的吗

    22 条回复    2019-06-04 13:34:11 +08:00
    m9rco
        1
    m9rco  
       2019-06-03 12:11:10 +08:00
    这有必要过网关吗?
    shm7
        2
    shm7  
       2019-06-03 12:25:03 +08:00 via iPhone
    强行过度设计总是必要的
    xomix
        3
    xomix  
       2019-06-03 12:58:47 +08:00
    API Gateway 实际上是做熔断、负载均衡等业务的,静态页放在其后也不是不可以。
    index90
        4
    index90  
       2019-06-03 13:01:40 +08:00
    静态资源为什么要经过 API 网关? LZ 究竟想解决什么问题?
    luozic
        5
    luozic  
       2019-06-03 13:02:11 +08:00 via iPhone
    Kong 有啥功能,google 一下不行?
    lovedebug
        6
    lovedebug  
       2019-06-03 13:26:16 +08:00 via Android
    静态页面用 nginx 更合适
    lovedebug
        7
    lovedebug  
       2019-06-03 13:27:07 +08:00 via Android
    api 网关主要是限流,认证,熔断,统计之类的工作,类似 aop
    daijinming
        8
    daijinming  
    OP
       2019-06-03 13:35:07 +08:00
    @index90 这样一个可以解决同域的问题,另外对外统一入口,比如 demo.com/site1,demo.com/site2
    daijinming
        9
    daijinming  
    OP
       2019-06-03 13:42:16 +08:00
    我在考虑网关能不能保护静态网页,比如用户没有登录,通过网关进行校验
    index90
        10
    index90  
       2019-06-03 14:08:54 +08:00
    可以是可以,但是没有人会这样做吧,对服务器压力很大的。
    部分静态页面还好,但是所有静态资源都放到 gateway 后面,试想想一个页面几十上百的页面元素,每个元素都要校验,机器会扛不住的。

    建议 LZ 还是学一下 CORS 和动静分离策略吧
    daijinming
        11
    daijinming  
    OP
       2019-06-03 14:24:25 +08:00
    @index90 恩,看来还是要多学习下“动静分离策略”
    souths
        12
    souths  
       2019-06-03 14:57:48 +08:00
    API 网关当然只跟 API 有关系啊
    souths
        13
    souths  
       2019-06-03 14:58:26 +08:00
    静态资源还是要用静态资源的方式
    iugo
        14
    iugo  
       2019-06-03 15:33:27 +08:00
    两个例子:

    1. Mock OPTION method.
    2. 鉴权.

    1 能减轻 Lambda 调起的次数, 避免无效的消耗.
    2 除了上面的好处外, 还有简化逻辑的功能.
    razertory
        15
    razertory  
       2019-06-03 15:35:25 +08:00
    已经在用 Kong 的路上越走越远了
    daijinming
        16
    daijinming  
    OP
       2019-06-03 16:24:35 +08:00
    @razertory 朋友能不能介绍下 KONG 或 分享下体验,KONG 是免费的吗,可以部署在 windows 服务器上吗或如何部署,管理端是 web 形式的,上手简单吗
    razertory
        17
    razertory  
       2019-06-03 16:42:36 +08:00
    @daijinming 本质上 Kong 就是 Nginx + Lua 部署应该没啥问题。
    我这边主要用来做请求限制,cors 和 jwt 避免每个 API Service 都做一套相同的逻辑。上手还是蛮简单的,调 API 或者配一个 kong-dashboard ( web 管理端)就 ok
    janxin
        18
    janxin  
       2019-06-03 16:53:07 +08:00
    不是,甚至可以做更多的功能
    udev
        19
    udev  
       2019-06-03 17:27:13 +08:00
    1、认证;
    2、权限;
    3、安全;
    4、业务统一,all 杂牌子 API to 统一 API ;
    5、审计;
    xuanbg
        20
    xuanbg  
       2019-06-03 17:41:26 +08:00   1
    网关主要的功能就是路由,或者说只有经过网关的流量,才能被均衡地分配到不同的服务实例。没有网关,你就必须直接访问服务实例,就无法进行流量的动态分配。
    至于别的功能,API 调用审计和身份认证放在网关上实现也说得过去。但很多人把鉴权也放到网关上面,我个人认为是不合适的。因为虽然接口 url 可以作为资源的特征来进行基于 url 的鉴权,但这样一来 url 里面就不能有 PathParam 就不能用了。而且也不能用 GET/PUT/DELETE 这些方法了,硬要用也不是不行,但要注意使用不同的 url,还不如统一 POST 来的简单。
    ResidualWind
        21
    ResidualWind  
       2019-06-03 17:45:52 +08:00
    一般 API 接口
    daijinming
        22
    daijinming  
    OP
       2019-06-04 13:34:11 +08:00
    @xuanbg 很有参考价值的一席话
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     907 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 21:48 PVG 05:48 LAX 14:48 JFK 17:48
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86