根据本文,在Kubernetes群集中的Nginx后面使用https和Azure AD身份验证运行.NET Core 2.x应用程序时,需要设置一些nginx属性:
.Net Core behind NGINX returns 502 Bad Gateway after authentication by IdentityServer4
答案概述了常规Nginx安装的方法,但是我想在使用Helm的Kubernetes集群中安装Nginx时这样做。
这些是需要设置的Nginx属性:
nginx.conf:
http{
...
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
large_client_header_buffers 4 16k;
...
}
default.conf:
location /{
...
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
...
}
我用于在Kubernetes集群中安装Nginx的命令是:
helm install stable/nginx-ingress --namespace kube-system
在Kubernetes集群中使用Helm安装Nginx时,如何设置上述属性?
答案 0 :(得分:0)
可以使用ConfigMap自定义nginx配置。
This is an example
如果未更新nginx,则在添加ConfigMap之后,请使用Helm更新您的nginx图表:
helm upgrade [RELEASE] [CHART]
heml upgrade my-release stable/nginx-ingress
如果您不知道[RELEASE],请使用以下命令:
helm list
答案 1 :(得分:0)
完全同意@Mozafar Gholami的观点,您可以在部署nginx时使用ConfigMap更改参数或更新当前配置。 要在安装之前更新参数,建议您下一步:
1。将图表提取到本地计算机并解压缩:
helm fetch stable/nginx-ingress
tar -xzf nginx-ingress-1.1.4.tgz
适合您的示例:
controller:
name: controller
image:
repository: quay.io/kubernetes-ingress-controller/nginx-ingress-controller
tag: "0.21.0"
pullPolicy: IfNotPresent
# www-data -> uid 33
runAsUser: 33
config:
proxy-buffer-size: "128k"
proxy-buffers: "4 256k"
3。检查将要添加到新的configmap中的
helm template . | less
4。安装图表
helm install --name nginx-ingress --namespace kube-system ./nginx-ingress
请记住:
您可以使用注释来代替ConfigMap。
不幸的是,上述方法无法在nginx-ingress中更改所有参数。
有关更多信息,请阅读nginx-ingress customization页面,您可以在其中找到可以更改的所有值。例如,在您的情况下,我无法更新proxy_busy_buffers_size
和large_client_header_buffers
参数。
希望这对您有所帮助。
答案 2 :(得分:0)
我发现最简单的解决方案是在Nginx入口上使用注释,如下所示:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/proxy-buffer-size: "16k"
nginx.ingress.kubernetes.io/rewrite-target: /
...