apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: redirect-8080-to-8443
spec:
redirectRegex:
regex: ^http://www.hftest.com:8080/(.*)
replacement: https://www.hftest.com:8443/${1}
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: redirect-http-to-https-by-regex
spec:
redirectRegex:
regex: ^http://www.hftest.com/(.*)
replacement: https://www.hftest.com/${1}
如果觉得在ingressroute
中写两个middleware
麻烦,还可以使用chain
将这两个整合到一起,然后写一个即可。
这样就可以解决从外网访问时,因外网使用了与traefik
不同端口带来的重定向问题了。
一文搞懂 Traefik2.1 的使用核心概念安装ACME中间件灰度发布流量复制TCP简单 TCP 服务带 TLS 证书的 TCP
Traefik 是一个开源的可以使服务发布变得轻松有趣的边缘路由器。它负责接收你系统的请求,然后使用合适的组件来对这些请求进行处理。
除了众多的功能之外,Traefik 的与众不同之处还在于它会自动发现适合你服务...
2. 反向代理
2.1 基本概念
EntryPoints:入口点是进入Traefik的网络入口点。它们定义了接收数据包的端口,以及是侦听TCP还是UDP。入口点是静态配置的一部分,它们可以通过使用文件(TOML或YAML)或CLI参数来定义。
Routers:路由器负责将传入的请求连接到能够处理它们的服务。在这个过程中,路由器可能会使用一些中间件来更新请求,或者在将
Traefik是一个为了让部署微服务更加便捷而诞生的现代HTTP反向代理、负载均衡工具。 它可以支持多种后端 (Docker, Swarm, Kubernetes, Marathon, Mesos, Consul, Etcd, Zookeeper, BoltDB, Rest API, file…) 来自动化、动态的应用它的配置文件设置。
本文为个人在学习Traefik的过程中,对Traefik相关...
使用 Nginx 容器为 Traefik 配置高性能通用错误页面
使用 Traefik 比较久的读者应该会发现,在服务重启的时候,原来的网站会展示 404 not found 的空白页面,虽然多数情况下服务恢复很快,但是这个恢复时间取决于部署启动的应用和监控检查配置策略,如果没有配置流量切换规则,那么有的时候,会看到很久的空白页面,这样的体验显然不好。
为了提升体验,我们可以使用 Traefik 提供的错误页面中间件来解决这个问题,优化访问体验。本篇思路同样可以处理通用 Nginx 错误页面的创建。
Traefik 是一个现代的 HTTP 反向代理和负载均衡器,使部署微服务变得容易。
Traefik 可以与现有的多种基础设施组件(Docker、Swarm 模式、Kubernetes、Marathon、Consul、Etcd、Rancher、Amazon ECS...)集成,并自动和动态地配置自己。
系列文章:
《Traefik 系列文章》
实践中,一个很常见的需求,用户输入的 url 是 ewhisper.cn/alert-manager, 如果什么都不做会返回 404, 需要自动加斜杠变成
上一次对kubernetes配置了 traefik ,如果需要traefik代理https的应用,就需要配置https,下面就针对traefik 的https做配置
准备工作:
下面的操作在deploy节点操作,此节点同时又被定义为了我的master节点。
证书:自己生成,或使用机构颁发的证书,私签证书命令,需要有安装OpenSSL:
openssl req -x509 -nodes -d...
传入请求在endpoints结束,顾名思义,它们是Traefik的网络入口点(侦听端口,SSL,流量重定向......)。
然后将流量转发到匹配的frontends。前端定义了从入口点到后端的路由。使用请求字段(主机,路径,标头...)创建路由,并且可以匹配或不匹配请求。然后,frontend将请求发送到后端。
后端可以由一个或多个server...
我们在配置nginx代理时,正常外网的映射与内网端口一致时,不会出现redirect跳转不对的情况,但如果内网监听的端口与外网监听的端口不一致时,就会产生redirect跳转不对的情况。为了解决这个问题,必须配置proxy_direct,以保持redirect时端口不一样的问题;表现为:
访问外网地址:http://221.***.***.238:2280/log...
Nginx是一个开源的高性能Web服务器,常用于反向代理、负载均衡等方面。其中,proxy_redirect是Nginx的一个指令,用于重定向代理请求的URL。
通常情况下,Nginx的配置文件中会有一个反向代理的设置,比如:
location / {
proxy_pass http://localhost:8080;
这里,Nginx会将所有访问"/"路径的请求转发到本地的8080端口。但是,如果8080端口返回的页面中有某些链接指向了自己,比如:
<a href="/home">Home</a>
那么,用户点击这个链接后,会发现URL变成了"localhost:8080/home",这显然不是我们期望的结果。
这时候,就可以使用proxy_redirect指令进行重定向,比如:
location / {
proxy_pass http://localhost:8080;
proxy_redirect off;
这样,在8080端口返回的页面中,所有的链接都会被重定向到Nginx服务器,而不是直接访问8080端口。如果8080端口返回的页面中有类似"<a href="/home">Home</a>"的链接,那么用户点击后,URL就会变成"localhost/home",这就达到了我们的目的。
除了这种基本用法,proxy_redirect还支持一些高级设置,比如通过正则表达式匹配URL等。在使用时,需要根据实际情况进行配置。