示例:将HTTP流量从旧域名重定向到新域名
以下是一个完整的示例,其中HTTP流量从旧域名old-domain.com
重定向到新域名new-domain.com
:
创建重定向服务。
在本例中,我们将使用与上面相同的重定向服务YAML文件。
创建Ingress规则。
我们可以使用以下YAML文件创建Ingress规则:
代码语言:javascript复制apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: redirect-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: old-domain.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: redirect-service
port:
name: http
上面的Ingress规则将所有以old-domain.com
开头的HTTP请求路由到redirect-service
服务中的根路径/
。我们还指定了一个名为rewrite-target
的注释,该注释指示Nginx在将流量重定向到新域名或URL时,将重定向目标路径重写为根路径/
。
配置Nginx重定向服务。
我们需要配置Nginx重定向服务,以将旧域名重定向到新域名。可以使用以下Nginx配置文件作为参考:
代码语言:javascript复制server {
listen 80;
server_name old-domain.com;
return 301 http://new-domain.com$request_uri;
}
上面的Nginx配置指定监听80端口的HTTP请求,将所有来自old-domain.com
的请求重定向到new-domain.com
,并保留请求URI。
应用配置并验证。
我们可以使用以下命令将上面的配置应用到Kubernetes集群中:
代码语言:javascript复制kubectl apply -f redirect-service.yaml
kubectl apply -f redirect-ingress.yaml
完成后,您可以使用浏览器或curl等HTTP客户端测试重定向是否按预期工作。如果一切正常,您的应用程序现在应该从旧域名重定向到新域名。