【发布时间】:2022-01-15 17:25:27
【问题描述】:
我有以下配置的 nginx.conf。
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 65;
proxy_send_timeout 65;
proxy_read_timeout 300;
proxy_buffers 4 256k;
proxy_buffer_size 128k;
proxy_busy_buffers_size 256k;
large_client_header_buffers 8 64k;
client_header_buffer_size 64k;
client_max_body_size 1024m;
server {
listen 443 ssl;
server_name server1.com;
ssl_certificate /etc/nginx/ssl/server1.com.crt;
ssl_certificate_key /etc/nginx/ssl/server1.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
proxy_ssl_session_reuse on;
proxy_ssl_protocols TLSv1.2;
rewrite_log on;
proxy_cache_bypass $http_cache_control;
proxy_ignore_headers "Set-Cookie";
add_header X-Proxy-Cache $upstream_cache_status;
location / {
location = /robots.txt {
add_header Content-Type text/plain;
return 200 "User-agent: *\nDisallow: /\n";
}
location ~ ^/(files/app) {
proxy_pass http://server1.com:31111;
}
proxy_pass https://server2.com;
}
}
我想将我的 nginx 配置转移到 kubernetes ingress-nginx ingress.yml。有没有办法使用 kubernetes Ingress 资源来实现这个配置?
这是我的 ingress.yml,它当然不起作用,并且点击 url https://server1.com/files/app 会进入多个重定向并最终抛出 502 Bad Gateway。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
meta.helm.sh/release-name: my-service
meta.helm.sh/release-namespace: default
generation: 1
labels:
app.kubernetes.io/managed-by: Helm
name: my-service
namespace: default
selfLink: /apis/extensions/v1beta1/namespaces/default/ingresses/my-service
spec:
rules:
- host: server1.com
http:
paths:
- backend:
serviceName: my-service
servicePort: 31111
path: /files/app
pathType: ImplementationSpecific
【问题讨论】:
-
您使用的是哪个版本的 Kubernetes,您是如何设置集群的?您是使用裸机安装还是某些云提供商?
-
@kkopczak 这是 K8s 1.21 和 cloudprovider。另请注意,除此之外,所有其他入口规则都可以正常工作。我怀疑这与反向代理或 SSL 证书有关……但我不知道如何将此 nginx.conf 转换为 Kubernetes 的 ingress.yml。
-
抱歉回复晚了。如果在 nginx.conf 中将端口从
listen 443 ssl;更改为listen 31111 ssl;会发生什么?
标签: nginx kubernetes nginx-ingress