SpringBoot + Spring Cloud Gateway 怎么实现 Nginx 转发的效果呢 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
openDatabase
V2EX    Java

SpringBoot + Spring Cloud Gateway 怎么实现 Nginx 转发的效果呢

  •  
  •   openDatabase 2023-07-08 11:36:29 +08:00 2948 次点击
    这是一个创建于 901 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司的系统都是内网部署,外网访问不了,计划增加一台外网可访问的前置鉴权转发服务器,鉴权通过则转发求到内网。

    目前遇到的问题:Nginx 可以转发,但是没法加入我们自定义的逻辑和鉴权。想用 Spring Cloud Gateway 来实现鉴权和转发比较合适,Spring Cloud Gateway 的转发不知道哪里没弄好,没实现效果。

    什么用 Spring Cloud Gateway 实现,比如请求本机 10.100.2.14:80 的请求都转发到另一台内网的机器 http://10.100.2.221:9000

    14 条回复    2023-07-09 00:49:08 +08:00
    wangjiaolian1126
        1
    wangjiaolian1126  
       2023-07-08 11:45:22 +08:00
    spring:
    cloud:
    gateway:
    routes:
    - id: blog
    uri: http://10.100.2.221:9000
    predicates:
    - Host=10.100.2.14
    wangjiaolian1126
        2
    wangjiaolian1126  
       2023-07-08 11:46:06 +08:00
    springcloud gateway 部署监听端口 80
    openDatabase
        3
    openDatabase  
    OP
       2023-07-08 12:44:36 +08:00
    @wangjiaolian1126 没有实现跳转,Whitelabel Error Page
    This application has no configured error view, so you are seeing this as a fallback.

    Sat Jul 08 12:43:49 CST 2023
    [50348cef] There was an unexpected error (type=Not Found, status=404).
    wellerman
        4
    wellerman  
       2023-07-08 13:32:11 +08:00
    nacos 里服务注册没成功,重新配置一下。
    openDatabase
        5
    openDatabase  
    OP
       2023-07-08 15:05:20 +08:00
    @wellerman 没有用 springcloud 那一套,如标题只用了 SpringBoot + Spring Cloud Gateway
    dr1q65MfKFKHnJr6
        6
    dr1q65MfKFKHnJr6  
       2023-07-08 15:07:53 +08:00
    lua 写个脚本
    flyqie
        7
    flyqie  
       2023-07-08 15:31:02 +08:00
    @cedoo22 #6

    nginx + lua 是个好办法,而且还灵活。
    zu1y
        8
    zu1y  
       2023-07-08 15:35:03 +08:00
    试试 traefik 或 apisix ,比 Spring Cloud Gateway 性能和配置方式都简单很多。
    nekomiao
        9
    nekomiao  
       2023-07-08 16:11:12 +08:00
    一楼的我试了下是可以的,检查下缩进和请求头里有没有 Host: 10.100.2.14 这一项。
    或者可以在 Spring Cloud Gateway 里 HostRoutePredicateFactory 这个类打个断点,看下里面的 GatewayPredicate 为什么没返回 true
    winglight2016
        10
    winglight2016  
       2023-07-08 17:43:00 +08:00
    @zu1y 没错,基于 openrestry 方案的网关方案是正解,速度又快,插件够多
    xuanbg
        11
    xuanbg  
       2023-07-08 18:20:32 +08:00
    服务要注册到注册中心。docker 直接运行一个 consul 就行了,简单得很。consul 还可以作为配置中心使用。
    wellerman
        12
    wellerman  
       2023-07-08 18:39:54 +08:00
    @openDatabase https://spring.io/blog/2022/08/26/creating-a-custom-spring-cloud-gateway-filter 这个应该可以解决你的需求。我之前研究过,没问题。如果后面只有一两个服务,不如用 nginx 转发。
    AkaHero
        13
    AkaHero  
       2023-07-08 20:33:30 +08:00
    我觉得你没必要这么折腾得拉,外网服务器上装 nginx+frp ,内网有一台通外网的机器负责连接到外网的机子,并且把请求抓发到内网即可,至于鉴权,原有的健全就可以用,如果是想再加一套授权,那就 basic auth 就好了,这个是改动最小,成本最低,速度最快的方案
    ex1gtnim7d
        14
    ex1gtnim7d  
       2023-07-09 00:49:08 +08:00
    这是非常基础的问题,网上搜一下就有答案了,同样的需求,完完全全复制粘贴实现的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3939 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 05:12 PVG 13:12 LAX 21:12 JFK 00:12
    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