当前所在位置: 首页 > 域名平台

搭建属于自己的内网穿透SpringCloud极简入门|zuul 动态转发url困扰很久功能终于实现了6

2021-10-12 本站作者 【 字体:

搭建属于自己的内网穿透前言

  大家好我是不一样的科技宅,每天进步一点点,体验不一样的生活。今天给大家带来的是用 frp 搭建属于自己的内网穿透,方便在我们日常的开发中进行调试。同时是 frp 是开源并且是免费的,只需要一台云服务器即可搭建。

SpringCloud极简入门|zuul 动态转发url困扰很久功能终于实现了6前情回顾

上一节(第5讲),我们讲解了zuul的基本配置,如下链接

什么是 frp?

  Frp 是一种快速反向代理,可帮助您将 NAT 或防火墙后面的本地服务器公开到 Internet。 到目前为止,它支持 TCP 和 UDP 以及 HTTP 和 HTTPS 协议,在这些协议中,请求可以通过域名转发到内部服务。

SpringCloud极简入门|zuul智能路由回退、认证、转发功能(五):https://www.toutiao.com/i6643405381466849800/

本章知识点很重要!很重要!很重要!,真的很重要,网上资料不是很多,所以建议收藏下转发

  frp 还具有 P2P 连接模式。

服务端安装 frp

  Frp Github 地址

动态路由设置使zuul变得很灵活,但是网上的资料大多是基于动态配置实现的,这样导致如果需要配置的路由成千上万的话,难免会有瓶颈(内存、或者同步实效性)。

下载 frp

 以我自己的服务器 Centos 为例下载frp_linux_amd64

业务场景:我们需要一种动态转发机制实现一种动态改变url的场景,说白了

wget https://github.com/fatedier/frp/releases/download/v0.31.1/frp_0.31.1_linux_amd64.tar.gz解压

tar -zxvf frp_0.31.1_linux_amd64.tar.gz解压后得到的文件

[root@VM_10_197_centos frp_0.31.1_linux_amd64] -rwxrwxr-x 1 1000 1000 10608640 1月   6 16:02 frpc -rw-rw-r-- 1 1000 1000     7447 1月   6 16:04 frpc_full.ini -rw-rw-r-- 1 1000 1000      126 1月   6 16:04 frpc.ini -rwxrwxr-x 1 1000 1000 11333632 1月   6 16:02 frps -rw-rw-r-- 1 1000 1000     2514 1月   6 16:04 frps_full.ini -rw-rw-r-- 1 1000 1000       26 1月   6 16:04 frps.ini -rw-rw-r-- 1 1000 1000    11358 1月   6 16:04 LICENSE drwxrwxr-x 2 1000 1000     4096 1月   6 16:04 systemd删除无用文件

rm -f frpc rm -f frpc.ini rm -f frpc_full.ini rm -f systemd/frpc.service rm -f systemd/frpc@.service服务端配置

 修改 frps.ini 文件,设置 http 访问端口为 8080

我们访问的时候是: http://localhost:8002/hello?name=zs&token=1

# frps.ini [common] bind_port = 7000 #服务启动占用端口 vhost_http_port = 8080 #进行转发端口启动服务端

./frps -c ./frps.ini注册系统服务

vim systemd/frps.service修改服务文件

[Unit] Description=Frp Server Service After=network.target [Service] Type=simple User=nobody Restart=on-failure RestartSec=5s # 这里需要根据frps的安装路径,进行更改 ExecStart=/home/frp/frps -c /home/frp/frps.ini [Install] WantedBy=multi-user.target复制文件到系统

cp systemd/frps.service /etc/systemd/system/

 注意:云服务器安全组以及防火墙需要开启对应的端口

可是需要路由动态的设置host或者url比如变成:http://localhost:8001/hello?name=zs&token=1(注端口已变化)

操作命令

# 启动测试 systemctl start frps.service # 查看启动状态 systemctl status frps.service # 停止 systemctl stop frps.service # 开机自启 systemctl enable frps.service客户端安装 frp(mac)

 下载客户端并解压frp_darwin_amd64过程可以参考服务端安装过程。

而这种变化我们不采用配置文件配置的方式,那如何实现转发呢(基于数据某种规则,此处只演示静态的)

Demo开始

承接上篇用springcloud-02-getway-zuul模块

curl -O --insecure https://github.com/fatedier/frp/releases/download/v0.31.1/frp_0.31.1_darwin_amd64.tar.gz删除无用的文件

rm -f frps rm -f frps.ini rm -f frps_full.ini rm -f systemd/frps.service rm -f systemd/frps@.service修改配置文件

vim frpc.ini

[common] server_addr = xxx.xxx.xxx.xxx(服务器公网ip) server_port = 7000 [web] type = http # 本地web服务端口 local_port = 9090 custom_domains = www.xxxxxx.com(自定义域名)

 注意:自定义域名需要解析到对应的服务器 ip 否则无法正常使用

客户端启动

./frpc -c ./frpc.ini

启动成功信息

2020/02/02 12:26:14 [I] [proxy_manager.go:144] [fd88aa5c4087afc9] proxy added: [web] 2020/02/02 12:26:14 [I] [control.go:164] [fd88aa5c4087afc9] [web] start proxy success访问本地服务

  看到启动成功信息,这里就已经完成本地 web 服务进行内网穿透了。我们可以在任意位置访问我们的本地 web 服务,通过访问http://www.xxxxxx.com:8080就可以达到访问http://localhost:9090的目的了。

SpringCloud极简入门|zuul 动态转发url困扰很久功能终于实现了6

分别启动:注册中心spring-cloud-eureka-002(端口7001),生产者一 spring-cloud-producter1-002(端口8001),生产者2 spring-cloud-producter2-002(端口8002) ,路由spring-cloud-zuul-002(端口6001)

增加安全配置

  为了安全起见我们可以在进行连接时设置 token,当客户端和服务端 token 一致时才可以成功建立连接,添加方式只需要在服务端和客户端[common]下添加 token 配置即可:

# 认证token token = 12345678开启 DashBorad

 开启 dashboard 只需要在服务端[common]添加以下配置即可,同时不要忘记对安全组开放端口。

dashboard_port = 7500 dashboard_user = admin dashboard_pwd = admin

 访问地址:http://serverIp:7500

搭建属于自己的内网穿透结尾

  如果觉得对你有帮助,可以多多评论,多多点赞哦,也可以到我的主页看看,说不定有你喜欢的文章,也可以随手点个关注哦,谢谢。

路由增加个路由配置,也就是访问testforward规则的url时,会转发给消费者2

也就是访问http://localhost:6001/testforward/hello?name=zs&token=1 此时访问是生产者2的controller

SpringCloud极简入门|zuul 动态转发url困扰很久功能终于实现了6

​我们要做的是访问时动态的设置url使之变成访问 http://localhost:8001/hello?name=zs&token=1

如何做呢?很简单,不过错过了这篇需要查询很多资料了

增加一个拦截器(注意里面规则可以根据具体业务进行转发,以下只是一个demo,判断如果url含有testforward则转发到http://127.0.0.1:8001/)

SpringCloud极简入门|zuul 动态转发url困扰很久功能终于实现了6验证结果:完成动态转发SpringCloud极简入门|zuul 动态转发url困扰很久功能终于实现了6End:

功能实现了就很简单,但是我们在寻找答案的时候总是那么难,所以还是需要热于分享的人出现,坚持写作1个月了,每晚都在凌晨一点睡,总是觉得时间不够用,不过还希望小伙伴们有所收获。

话外篇

截至目前粉丝已经999个了,这是个吉利数字,打算现在申请原创,希望得到大家的祝福,欢迎转发,真心希望能一次通过,虽然有点不现实,毕竟粉丝数比较少。不管结局如何在此感谢转发的小伙伴....

SpringCloud极简入门|zuul 动态转发url困扰很久功能终于实现了6

​文章数量82篇

SpringCloud极简入门|zuul 动态转发url困扰很久功能终于实现了6

​源码下载:https://github.com/shinians/springcloud-demos

阅读全文
id_1广告位-300*300
相关推荐

一文弄懂vlan、三层交换机、网关、DNS、子网掩码、MAC地址抖音收购支付牌照,字节跳动储备新域名,官方称为防恶意侵权

一文弄懂vlan、三层交换机、网关、DNS、子网掩码、MAC地址抖音收购支付牌照,字节跳动储备新域名,官方称为防恶意侵权
11月30日,有消息称,字节跳动常用来存储自家域名的注册商“易名”旗下新增一个名...

中文域名是什么意思域名是什么意思啊

中文域名是什么意思域名是什么意思啊
域名,简称域名、网域,是由一串用点分隔的名字组成的Internet上某一台计算机...

阿里云服务器购买教程购买云服务器送的免费域名是已经备案了吗

阿里云服务器购买教程购买云服务器送的免费域名是已经备案了吗
1.购买云服务器送的免费域名,如果是测试的临时域名,是备案了的。2.如果是自己买...

互联网经营许可证怎么办?互联网药品交易服务的资格证书怎么办理?

互联网经营许可证怎么办?互联网药品交易服务的资格证书怎么办理?
首先感谢悟空问答的邀请,最近比较忙,终于抽出时间来认真回答几个问题了,也希望能帮...

域名注册申请需要准备哪些材料?gov.cn域名还能申请吗?

域名注册申请需要准备哪些材料?gov.cn域名还能申请吗?
 gov.cn域名仅供政府机构注册,个人与企业不能注册。如需要注册.gov 必须...

frp通过指定域名访问部署于内网的 web 服务SAE 场景下,应用流量的负载均衡及路由策略配置实践

frp通过指定域名访问部署于内网的 web 服务SAE 场景下,应用流量的负载均衡及路由策略配置实践
流量管理从面向实例到面向应用在 Serverless 场景下,由于弹性能力以及底...

搭建属于自己的内网穿透SpringCloud极简入门|zuul 动态转发url困扰很久功能终于实现了6

搭建属于自己的内网穿透SpringCloud极简入门|zuul 动态转发url困扰很久功能终于实现了6
前言  大家好我是不一样的科技宅,每天进步一点点,体验不一样的生活。今天给大家带...

DNS解析域名:发现域名和IP不一致,访问了该域名会如何?github项目:tcp穿透内网passbytcp

DNS解析域名:发现域名和IP不一致,访问了该域名会如何?github项目:tcp穿透内网passbytcp
目的网上搜索了不少tcp内网穿透的代码,功能全的大多是go版本,无奈对go不感冒...

哪家域名支持url转发功能如何判断域名URL转发是否正常?

哪家域名支持url转发功能如何判断域名URL转发是否正常?
展开全部看能否访问了。URL转发的缺点: 1)经过我们实际测试,速度上要比...

基于JavaFx和SpringBoot搭建的实用小工具集合Shopify后台撰写、隐藏、删除博客文章操作教程

基于JavaFx和SpringBoot搭建的实用小工具集合Shopify后台撰写、隐藏、删除博客文章操作教程
在shopify店铺中创建博客后,您便可以开始撰写博客文章。您的文章可以包含文字...