PowerShell免费软件

traefik网关的https上游配置


traefik v2 https 上游 upstream 边缘 Edge Gateway 博客园 services


---【前言】---

 

k4t国产k8s。qq群号:722528388
为了给【国产k8s】选几款网关,我盯上了欧洲人开发的老牌网关traefik。
因为没有中文网站和社区支持,自己研究很费劲。
我把经验总结下来,给大家使用。

 

---【正文】---


---【特色&优缺点】---

* 支持win中使用。这很好,很方便。

* 支持http,https,发送api。

* 支持etcd,redis,云存储等作为存储数据面。

* 支持watch目录。

* 动态配置文件名支持中文。扩展名支持yaml,toml。只需要把某个路由扩展名改成.txt,即代表删除此路由。

* 动态配置文件只支持utf8,无bom头编码。支持井号开始的注释。但尽量单独一行。支持中文注释。静态配置文件不支持中文。

* 基于分布式数据库,或者频繁复制文件,达到数据面高可用。

* 自带dashboard。但免费版只能看,不能编辑。建议测试服打开,工作服关闭dashboard。

* 位于欧洲,github上不接受技术支持。公司自建论坛只支持英文。论坛中文邮箱注册不上。

* 中文网站,论坛很不活跃。讨论基本没有。难以获取支持。
我发现自从2021年中开始,网上学习研究这个网关的就开始减少了。
这也是我写本文的目的,希望本文能给这个网关注入点活力。


---【弄好的配置文件例子】---

在:
https://gitee.com/chuanjiao10/powershell/tree/master/gateway_client/traefik

baidu.toml:本文代码。

zhengze3.toml.txt:正则替换的例子。
默认不起作用,需要把baidu.toml改名。然后把此文件改名成toml

http2http.toml: 从http路由,转http上游

openssl.conf:证书配置文件。

traefik.toml:启动用的静态配置文件。

 

---【用traefik配置边缘网关,并使用https上游】---


这里先要把 test223.com ,在host文件中指向本机。
对于win,就是:
c:\Windows\System32\drivers\etc\host文件中写入:
127.0.0.1 test223.com


然后:

目的:所有http,都转https

 

[http.routers]
[http.routers.my-router]
rule = "Host(`test223.com`) && PathPrefix(`/baidu`)"
middlewares = "redirect2https"
entryPoints = "web"
service = "noop@internal"

[http]
[http.middlewares]
[http.middlewares.redirect2https.redirectScheme]
scheme = "https"

 

注意:上面的这段代码,不能独立工作,需要下面的代码。

目的:从https,显式,转https网址

[http.routers.my-router-https]
rule = "Host(`test223.com`) && PathPrefix(`/baidu`)"
service = "noop@internal"
entryPoints = "websecure"
middlewares = "https-upstream"
[http.routers.my-router-https.tls]

[http.middlewares.https-upstream.redirectRegex]
regex = "^https://test223.com/baidu$"
replacement = "https://www.baidu.com"

 


---【用openssl制作,自签名证书】---


cd a:\traefik_v2.9.10
openssl req -x509 -nodes -days 3660 -newkey rsa:2048 -keyout test223.key -out test223.cert -config A:\traefik_v2.9.10\openssl.conf


测试:
curl.exe -kv https://test223.com/baidu
powershell v5:Invoke-WebRequest https://test223.com/baidu
powershell v7:Invoke-WebRequest https://test223.com/baidu -SkipCertificateCheck


win中,用浏览器测试:
运行certmgr.msc,把证书导入到【受信任的根证书颁发机构】。


注意,尽量使用curl,或powershell测试。浏览器有时候会缓存旧的路由,或上游。
变更后,即便重启浏览器,也还是旧路由,旧上游。需要重启win。有时候重启win,也不更新。

 

---【谢谢观看,完】---

 

posted on 2023-04-29 16:08  PowerShell免费软件  阅读(313)  评论(0编辑  收藏  举报

导航