问题标签 [nginx-ingress]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
105 浏览

kubernetes - 在 Nginx 入口控制器的 conf.d 中设置 ssl_certificate 路径

我需要在 Nginx 入口控制器中设置 conf.d 文件。我需要更改的字段是 ssl_certificate 和 ssl_certificate_key。

我会为 yaml 示例感到高兴。

0 投票
1 回答
3028 浏览

kubernetes - Nginx 入口控制器 modsecurity

我根据此链接通过 nginx 入口控制器的 configmap 启用了 modsecurity: "true" 和 enable-owasp-modsecurity-crs: "true" 。在入口的注释中,我将 SecRuleEngine 设置为 On。当我使用nikto进行一些扫描并尝试触发 owasp 规则时,我在入口日志中只看到 400 个响应。我预计会有 403 个回复。有人知道我做错了什么或要检查什么吗?

0 投票
1 回答
852 浏览

kubernetes - 从 http 到 https 的重定向不适用于 Kubernetes Nginx Ingress Controller 中的自定义后端服务

我在 Kubernetes 中使用 Ingress 资源设置了自定义 Nginx 入口控制器,而不是“default-http-backend 服务”,我使用自定义应用程序作为默认后端服务,为默认请求提供服务。我还为我的服务使用了设置为 kubernetes 机密的自定义 SSL。问题是当我请求规则中提到的主机名时,https 重定向有效。但是当发出规则中提到的主机以外的请求时,它服务于默认应用程序,但 https 重定向不起作用。

对于包括默认请求在内的所有请求,如何将请求从 http 重定向到 https。换句话说,如何在入口资源中为通配符域设置 https 重定向。

请找到我的 yaml 文件以获取入口资源。

0 投票
1 回答
186 浏览

kubernetes - 使用 nginx/traefik 入口控制器自定义 vhost 配置

我有一个服务于多个 /locations 的服务。我想使任何 IP 都可以访问单个位置 /how/very/special,同时保持每个其他 /location 只能对受信任的 IP 列表访问(如果可以的话,这很简单

通过 traefik 或入口控制器实现这一目标的最佳实践方法是什么?Sidecar nginx 是添加此逻辑的唯一方法吗?

0 投票
2 回答
6137 浏览

kubernetes - Kubernetes Nginx Ingress HTTP 到 HTTPS 通过 301 而不是 308 重定向?

我们在 Azure AKS 上运行了几个 k8s 集群。该服务(幽灵博客)位于 Nginx 入口的后面,并使用 Letsencrypt 的证书进行保护。所有这些都可以正常工作,但重定向行为是我遇到的问题。

Ingress 正确地从http://whatever.com重定向到 https://whatever.com — 问题是它使用 308 重定向来实现这一点,该重定向会在用户从网站共享页面时剥离所有帖子/页面 Meta .

该问题导致在大多数社交属性上共享网站任何页面的用户收到“预览链接”——其中页面标题和页面元预览不起作用,而是替换为“308 永久重定向”文本——看起来像这样:

在此处输入图像描述

这里的 ingress-nginx 文档中,我可以看到这是预期的行为(即 308 重定向),我认为不是这些服务尝试创建页面预览时与社交共享服务的交互。

虽然这个问题可以通过 Facebook(或 twitter 等)默认直接指向 https 站点来解决,但我目前无法强制这些站点在 https 中查找将用于创建预览的内容。

设置永久重定向代码

我还可以看到,看起来我应该能够将重定向代码设置为我想要的任何内容(我相信 301 重定向将允许 Facebook 等人正确提取帖子/页面片段元),找到的文档在这里

问题是当我按指定添加重定向代码注释时:

尽管能够(从我的 kubectl 代理)看到重定向代码注释正确应用,但我仍然在我的资源上获得 308 重定向。作为参考,我在 Ingress 上的完整注释列表如下所示:

重申一下——我的问题是;通过自定义错误代码(在我的情况下为 301)强制重定向到 https 的正确方法是什么?

0 投票
5 回答
10083 浏览

kubernetes - 如何在 Kubernetes 中公开 Ingress 以供外部访问?

我在私有网络(私有服务器,不是 aws 或谷歌云)上有一个 kubernetes 集群,我创建了一个能够访问的服务,但是,我需要能够从集群外部访问,为此我创建了一个入口并在集群中添加了ingress-nginx。

这是我多次尝试后使用的 YAML:

我这样运行 yaml:kubectl create -f file.yaml

在 /etc/hosts 文件中,我将k8s.local添加到主服务器的 ip 中。

当尝试输入或输出主服务器的命令时,会出现“连接被拒绝”消息: $ curl http://172.16.0.18:80/ -H 'Host: k8s.local'

我不知道它是否重要,但我在集群中使用 Flannel。

我的想法只是创建一个“hello world”并将其暴露在集群之外!

我是否需要更改配置中的任何内容以允许此访问?


YAML 文件编辑:

0 投票
1 回答
1911 浏览

nginx - Get requesters source IP

Issue:

  • x-forwarded-for http header just shows 127.0.0.1 instead of the original ip

Setup

  • GKE
  • gitlab ingress controller

Details

I tried to adapt the ingress rule with nginx CORS enablement but no success.

Here my ingress Annotation for the service:

And here the output via echoheaders app:

0 投票
2 回答
9418 浏览

nginx - 在 kubernetes GKE 上为 nginx 入口控制器设置缓存控制标头

我有一个 ingress-nginx 控制器来处理我在 GKE 上托管的 Kubernetes 集群的流量。我使用文档中的 helm 安装说明进行了设置:

文档在这里

在大多数情况下,一切正常,但如果我尝试通过server-snippet注释设置缓存相关参数,则所有应获取缓存控制标头的服务内容都以404.

这是我的ingress-service.yaml文件:

同样,只有与正则表达式匹配的资源才会返回404(所有.js文件、.css文件等)。

关于为什么会发生这种情况的任何想法?

任何帮助表示赞赏!

0 投票
0 回答
343 浏览

nginx - 只允许一台主机使用入口 nginx configmap 进行连接

我可以看到 nginx 有一个允许和拒绝的选项。我可以允许 host.domain.com 并拒绝所有使用 nginx 的人,请参阅: https: //support.hypernode.com/knowledgebase/blocking-allowing-ip-addresses-in-nginx/

但是,我如何在入口的 ConfigMap 中描述它?我在文档https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/中看到了 block-cidrs 选项。一个示例 ConfigMap 会很有帮助。还是应该使用 nginx 模板来完成?

0 投票
4 回答
14882 浏览

nginx - nginx.conf 忽略了 nginx-ingress 配置映射片段

我有一个 kubernetes 集群,我在其中使用helm nginx-ingress chart部署了一个 nginx 入口控制器。

我需要向 nginx-controller-pod 中生成的 nginx.conf 文件添加一些自定义配置,并且我看到一个问题,如果我添加一个单行选项,例如proxy-buffer-size: "512k"我可以在 nginx.conf 中看到这一点文件,一切都按预期工作。

但是,如果我尝试添加一个片段来完成同样的事情:

好像这被 nginx.conf 文件忽略了,并且proxy_buffer_size设置保持在它的默认值。

我需要能够添加和覆盖http-snippet,但无论我尝试将它们添加到 ConfigMap 还是作为 Ingress.yaml 文件中的注释,它们总是被忽略。server-snippetlocation-snippet

我的入口 yaml 文件:

我的 nginx 配置图: