nginx转发ingress-nginx问题记录

背景

想直接通过域名访问k8s上的服务. 想到k8s上可以直接通过ingress配置. 不过ingress默认启动的端口3xxxxx. 一般不可能让用户访问我们的服务加上端口. 所以现在要解决直接通过80端口访问ingress的问题.

方案

  1. 修改ingress-nginx端口(这个是在网上搜到的方案, 但未选择)

这个要修改k8s配置, 默认k8s上服务是不能开80端口的

  1. 直接在服务器通过docker部署个nginx 80端口, 然后配置这个nginx将所有流量转发到ingress-nginx.

执行过程中遇到的问题:

  • 通过ingress配置转发到后端 – 正常
  • 通过nginx转发到ingress – 正常
  • 通过nginx转发到ingress, 再通过ingress转发到后端 --异常

举个例子: 我ingress 端口是30181, 服务端口是30444(服务有接口/admin), 额外部署的nginx端口80. 域名abc.cn 解析到nginx所在到IP
访问 -> abc.cn:30181 – 正常,直接到了ingress
访问 -> abc.cn:30181/admin – 返回200(正常,通过ingress转发到了服务)
访问 -> abc.cn – 正常,通过nginx转发到了ingress
访问 -> abc.cn/admin – 返回404. 异常, 预期返回200.
通过查看nginx的access.log. 这个请求通过额外部署的nginx转发到了30181端口. 但是查看ingress-nginx的日志, 请求没有进来.

额外部署的nignx 配置如下

  server {listen 80;server_name abc.cn;#server_name _;location / {proxy_pass http://172.17.0.1:30181;}}

ingress配置如下
在这里插入图片描述

问题解决:
将 proxy_pass http://172.17.0.1:30181; 改成 proxy_pass http://abc.cn:30181;

原因是ingress转发/admin的条件是servername必须是域名abc.cn (即这里host设置的域名)

由于我这个nginx是通过docker部署的, 还需要再配置下docker容器的dns. 不然我这不能解析成功. (我把原来的nginx删了重新run , 指定了自己的新的resolv.conf

docker run -d -p 80:80 --name nginx --privileged=true -v /cloud/nginx/nginx.conf:/etc/nginx/nginx.conf -v /cloud/nginx/html:/etc/nginx/html -v /cloud/nginx/log:/var/log/nginx -v /cloud/nginx/resolv.conf:/etc/resolv.conf nginx

resolv.conf内容如下

root@f2ee61c77992:/# cat etc/resolv.conf 
nameserver 114.114.114.114
nameserver 8.8.8.8

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/290175.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ssm基于vue技术的绿色蔬菜销售管理系统+vue论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本绿色蔬菜销售管理就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息…

2023最新最全【MYSQL】8.0.11下载,零基础入门到精通

1、下载安装: MySQL8下载地址:点击No thanks 点击底部“No thanks, just start my download.”直接下载就行。 然后将压缩包解压到电脑,直接抄我的 D:\Program Files (x86)\mysql\mysql-8.0.11-winx64 2、配置环境(win10&#x…

神经网络:优化器和全连接层

SGD(随机梯度下降) 随机梯度下降的优化算法在科研和工业界是很常用的。 很多理论和工程问题都能转化成对目标函数进行最小化的数学问题。 举个例子:梯度下降(Gradient Descent)就好比一个人想从高山上奔跑到山谷最低…

云原生系列2-CICD持续集成部署-GitLab和Jenkins

1、CICD持续集成部署 传统软件开发流程: 1、项目经理分配模块开发任务给开发人员(项目经理-开发) 2、每个模块单独开发完毕(开发),单元测试(测试) 3、开发完毕后,集成部…

海康威视运行管理中心 Fastjson RCE

漏洞描述 海康威视运行管理中心系统存在低版本Fastjson远程命令执行漏洞,攻击者可在未鉴权情况下获取服务器权限,且由于存在相关依赖,即使服务器不出网无法远程加载恶意类也可通过本地利用链直接命令执行,从而获取服务器权限。 漏…

AMD和CMD的区别

AMD和CMD的区别 AMD和CMD的区别 AMD和CMD的区别 依赖引入不同 AMD: 依赖前置 CMD:就近依赖模块导出不同 AMD:return 返回值 CMD:exports //CMD define(function(){//依赖就近书写var module1 require(Module1);var result1 module1.exec();//exports导出module.exports {r…

【RTOS学习】源码分析(信号量和互斥量 事件组 任务通知)

🐱作者:一只大喵咪1201 🐱专栏:《RTOS学习》 🔥格言:你只管努力,剩下的交给时间! 目录 🍓信号量和互斥量🍅创建🍅Take🍅Give &#x…

【SpringMVC】SpringMVC的请求与响应

文章目录 0. Tomcat环境的配置1. PostMan工具介绍创建WorkSpace建立新的请求 2. 请求映射路径案例结构与代码案例结构案例代码 案例存在问题解决方案方法方法升级版——配置请求路径前缀注解总结 3. Get请求与Post请求案例结构与案例代码案例结构案例代码 Get请求Post请求接收中…

c++打开网页

1.使用ShellExecute 效果图: 相关代码: void Open_url::on_pushButton_clicked() {QString path1 "explorer.exe";QString urlui->lineEdit->text();ShellExecute(NULL, L"open", path1.toStdWString().c_str(), url.toStdWString().c…

海康威视IP网络对讲广播系统命令执行漏洞(CVE-2023-6895)

漏洞介绍 海康威视IP网络对讲广播系统采用领先的IPAudio™技术,将音频信号以数据包形式在局域网和广域网上进行传送,是一套纯数字传输系统。 Hikvision Intercom Broadcasting System 3.0.3_20201113_RELEASE(HIK)版本存在操作系统命令注入漏洞,该漏洞源于文件/ph…

山景DU561—32位高性能音频处理器(DSP)芯片

音频处理可以更好地捕捉和处理声音和音乐;而DSP音频处理芯片是一种利用数字信号处理技术进行音频处理的专用芯片;可用于多种应用,从音乐拾音到复杂的音频信号处理,和声音增强。 由工采网代理的山景DU561是一款集成多种音效算法高…

【大数据存储与处理】实验一 HBase 的基本操作

一、实验目的: 1. 掌握 Hbase 创建数据库表及删除数据库表 2. 掌握 Hbase 对数据库表数据的增、删、改、查。 二、实验内容: 1、题目 0:进入 hbase shell 2、题目 1:Hbase 创建数据库表 创建数据库表的命令:create 表…