基于Traefik如何实现向后转发自动去掉前缀?

基于,traefik,如何,实现,向后转,自动,去掉,前缀 · 浏览次数 : 49

小编点评

**使用 StripPrefixRegex MiddleWare 实现 Traefik K8S 中的 URL 转发** **步骤 1:创建 Middleware** ```yaml apiVersion: traefik.containo.us/v1alpha1kind: Middleware metadata: name: strip-prefix-1 spec: stripPrefixRegex: regex: - /[^/]+/ ``` **步骤 2:创建 IngressRoute** ```yaml apiVersion: traefik.containo.us/v1alpha1kind: IngressRoute metadata: name: alertmanagerspec spec: routes: - kind: Rule match: Host(`ewhisper.cn`) && PathPrefix(`/alertmanager/`) middlewares: - name: strip-prefix-1 services: - name: alertmanager port: 9093 ``` **步骤 3:使用 StripPrefixRegex MiddleWare** ```yaml apiVersion: traefik.containo.us/v1alpha1kind: Middleware metadata: name: strip-prefix-2 spec: stripPrefixRegex: regex: - /[^/]+/[^/]+/IngressRoute ``` **步骤 4:运行 Traefik** ```bash kubectl apply -f traefik.yaml ``` **注意:** * `ewhisper.cn` 是您的目标 URL。 * `alertmanager` 是您的 Alert Manager 应用程序的名称。 * `9093` 是您的 Alert Manager 的 API 端口。

正文

前言

Traefik 是一个现代的 HTTP 反向代理和负载均衡器,使部署微服务变得容易。

Traefik 可以与现有的多种基础设施组件(Docker、Swarm 模式、Kubernetes、Marathon、Consul、Etcd、Rancher、Amazon ECS...)集成,并自动和动态地配置自己。

系列文章:

实践中, 往往会有这样的需求, 用户输入的url是https://ewhisper.cn/alert-manager/#/alerts, 但是转发到后端要变成http://alertmanager:9093/#/alerts, 如何基于 Traefik on K8S 实现?

答案是: 使用 StripPrefixRegex MiddleWare.

实战

直接创建如下的一个 MiddleWare:

apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: strip-prefix-1
spec:
  stripPrefixRegex:
    regex:
      - /[^/]+/

以上实现的功能就是去掉一层/<xxx>/ 前缀.

去掉两层前缀

去掉两层前缀也很简单:

apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: strip-prefix-2
spec:
  stripPrefixRegex:
    regex:
      - /[^/]+/[^/]+/

IngressRoute 使用

直接这样使用:

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: alertmanager
spec:
  routes:
    - kind: Rule
      match: Host(`ewhisper.cn`) && PathPrefix(`/alertmanager/`)
      middlewares:
        - name: strip-prefix-1
      services:
        - name: alertmanager
          port: 9093

🎉🎉🎉 完成!

EOF

与基于Traefik如何实现向后转发自动去掉前缀?相似的内容:

基于Traefik如何实现向后转发自动去掉前缀?

实践中, 往往会有这样的需求, 用户输入的url是ewhisper.cn/alert-manager/#/alerts, 但是转发到后端要变成/#/alerts, 如何基于 Traefik on K8S 实现?

基于 Traefik 如何实现 path 末尾自动加斜杠?

前言 Traefik 是一个现代的 HTTP 反向代理和负载均衡器,使部署微服务变得容易。 Traefik 可以与现有的多种基础设施组件(Docker、Swarm 模式、Kubernetes、Marathon、Consul、Etcd、Rancher、Amazon ECS...)集成,并自动和动态地配

基于 Traefik 的 Basic Auth 配置

前言 Traefik是一个现代的HTTP反向代理和负载均衡器,使部署微服务变得容易。 Traefik可以与现有的多种基础设施组件(Docker、Swarm模式、Kubernetes、Marathon、Consul、Etcd、Rancher、Amazon ECS...)集成,并自动和动态地配置自己。

基于 Traefik 的激进 TLS 安全配置实践

前言 Traefik是一个现代的HTTP反向代理和负载均衡器,使部署微服务变得容易。 Traefik可以与现有的多种基础设施组件(Docker、Swarm模式、Kubernetes、Marathon、Consul、Etcd、Rancher、Amazon ECS...)集成,并自动和动态地配置自己。

基于 Traefik 的 ForwardAuth 配置

前言 Traefik 是一个现代的 HTTP 反向代理和负载均衡器,使部署微服务变得容易。 Traefik 可以与现有的多种基础设施组件(Docker、Swarm 模式、Kubernetes、Marathon、Consul、Etcd、Rancher、Amazon ECS...)集成,并自动和动态地配

基于 Three.js 的 3D 模型加载优化

作为一个3D的项目,从用户打开页面到最终模型的渲染加载的时间也会比普通的H5项目要更长一些,从而造成大量的用户流失。为了提升首屏加载的转化率,需要尽可能的降低loading的时间。这里就分享一些我们在模型加载优化方面的心得。

基于MindSpore实现BERT对话情绪识别

本文分享自华为云社区《【昇思25天学习打卡营打卡指南-第二十四天】基于 MindSpore 实现 BERT 对话情绪识别》,作者:JeffDing。 模型简介 BERT全称是来自变换器的双向编码器表征量(Bidirectional Encoder Representations from Trans

基于 Vagrant 手动部署多个 Redis Server

环境准备 宿主机环境:Windows 10 虚拟机环境:Vagrant + VirtualBox Vagrantfile 配置 首先,我们需要编写一个 Vagrantfile 来定义我们的虚拟机配置。假设已经在 D:\Vagrant\redis 目录下创建了一个 Vagrantfile,其内容如下:

基于EF Core存储的Serilog持久化服务

前言 Serilog是 .NET 上的一个原生结构化高性能日志库,这个库能实现一些比内置库更高度的定制。日志持久化是其中一个非常重要的功能,生产环境通常很难挂接调试器或者某些bug的触发条件很奇怪。为了在脱离调试环境的情况下尽可能保留更多线索来辅助解决生产问题,持久化的日志就显得很重要了。目前Ser

基于EF Core存储的国际化服务

前言 .NET 官方有一个用来管理国际化资源的扩展包Microsoft.Extensions.Localization,ASP.NET Core也用这个来实现国际化功能。但是这个包的翻译数据是使用resx资源文件来管理的,这就意味着无法动态管理。虽然官方有在文档中提供了一些第三方管理方案,但是都不太