首页 > 系统相关 >K8S nginx-ingress配置集锦

K8S nginx-ingress配置集锦

时间:2023-06-16 19:06:00浏览次数:49  
标签:ingress abc http 集锦 nginx io name

1.设置IP白名单

#设置只能通过192.168.0.0/24和127.0.0.1网段才能访问,否则报403

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: rabbitmq
  namespace: default
  annotations:
    nginx.ingress.kubernetes.io/whitelist-source-range: 192.168.0.0/24,127.0.0.1
spec:
  rules:
  - host: rabbitmq.abc.com
    http: &http_rules
      paths:
      - backend:
          service:
            name: rabbitmq
            port:
              number: 15672
        path: /
        pathType: ImplementationSpecific


2.http认证

#某些情况下,需要打开HTTP认证用于某些系统的开放

A.生成密码文件,文件名称必须是auth

yum -y install httpd-tools

htpasswd -c auth user

#然后输入2次密码,即可创建一个auth的密码文件

B.创建K8S secret,创建一个webauth的密码配置,--from-file必须为auth,否则访问直接报503

kubectl create secret generic webauth --from-file=auth

C.ingress配置文件

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: php74-qilinadm-auth
  namespace: default
  annotations:
    nginx.ingress.kubernetes.io/auth-type: basic
    nginx.ingress.kubernetes.io/auth-secret: webauth   #密码配置的名称
    nginx.ingress.kubernetes.io/auth-realm: 'Trust Login'
spec:
  rules:
  - host: admin.abc.com
    http: &http_rules
      paths:
      - backend:
          service:
            name: admin-service
            port:
              number: 80
        path: /
        pathType: ImplementationSpecific


3.流量复制

有时候需要将我们的服务,引流到测试环境进行测试,这个时候就需要使用nginx的流量复制功能

我的需求是,将www.abc.com/api/的流量,复制到192.168.0.2的负载均衡上,另外主机名与原主机一致

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: web-mirror
  namespace: default
  annotations:
    nginx.ingress.kubernetes.io/mirror-host: "www.abc.com"
    nginx.ingress.kubernetes.io/mirror-target: http://192.168.0.2$request_uri
spec:
  rules:
  - host: www.abc.com
    http: &http_rules
      paths:
      - backend:
          service:
            name: web-service
            port:
              number: 80
        path: /api/
        pathType: ImplementationSpecific


4.转发

由于微信限制一个域名问题,需要我们将原先www.abc.com/api/weixin/转发到api.abc.com/api/weixin/

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: www-api-weixin
  namespace: default
  annotations:
    nginx.ingress.kubernetes.io/upstream-vhost: "api.abc.com"
spec:
  rules:
  - host: www.abc.com
    http: &http_rules
      paths:
      - backend:
          service:
            name: api-service
            port:
              number: 80
        path: /api/weixin/
        pathType: ImplementationSpecific


5.直接返回字符串,比如我们使用微信的txt文件验证时,就可以使用

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: face-geturl
  namespace: default
  annotations:
    nginx.ingress.kubernetes.io/configuration-snippet: |
        #default_type application/json;  #返回类型
        return 200 'helloworld';  #直接返回字符
spec:
  rules:
  - host: www.abc.com
    http: &http_rules
      paths:
      - backend:
          service:
            name: web-service
            port:
              number: 80
        path: /21321312sa1231.txt
        pathType: ImplementationSpecific


标签:ingress,abc,http,集锦,nginx,io,name
From: https://blog.51cto.com/fengwan/6501607

相关文章

  • vue3:vue+nginx+php进行服务端部署的配置(nginx/1.18.0 / [email protected])
    一,开发环境中的配置:1,前端:vue的vue.config.jsconst{defineConfig}=require('@vue/cli-service')module.exports=defineConfig({transpileDependencies:true,publicPath:process.env.NODE_ENV==="production"?"./":"/&qu......
  • nginx升级和去除http响应中的Server头信息
    这两天接到个需求,就是去除http响应中的Server头信息,说是容易被黑客利用进行有针对的攻击,这个理由很充分,还是要安排上。 我们的http是nginx做的反向代理,于是需求就变成了  Nginx去除HTTPServer头查找了一番,大部分都是隐藏nginx版本server_tokensoff;配置类似于:user......
  • Nginx配置
    下载安装:http://nginx.org/en/download.html下载稳定版启动cmd即可startnginxtasklist/fi"imagenameeqnginx.exe"修改端口号localhost:80或者127.0.0.1打开重启:.\nginx-sreload停止:.\nginx-squit.\nginx-sstopnginx-t判断问题在第几行nginx.con......
  • Centos7 安装nginx
    1.添加Nginx到YUM源添加CentOS7Nginxyum资源库,打开终端,使用以下命令:sudorpm-Uvhhttp://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm2.安装Nginx在你的CentOS7服务器中使用yum命令从Nginx源服务器中获取来安装Nginx:su......
  • if判断访问的域名 nginx
    单个if($http_Host!='127.0.0.1:80'){return403;}多个域名set$flag0;if($http_Host!='127.0.0.1:80'){ set$flag"${flag}1";}if($http_Host!="www.baidu.com:80"){ set$flag"${flag}2";}if($flag="01......
  • nginx安装-CentOS7
    一、下载nginx版本二、配置2.1安装配置2.2配置nginx环境变量2.3 设置开机启动2.4CentOS7防火墙端口开放三、卸载nginx四.常用命令  一个项目,使用https协议,用nginx做负载。使用当前较新的windows版本nginx1.23.3.2SnapDragonfly,使用Jmeter压测,很不理想,http协议能......
  • Nginx、fastCGI、http方式关系梳理
     1.介绍在linux的LNMP环境中,nginx.conf中配需要配置fastCGI,php需要安装php-fpm扩展并启动php-fpm守护进程,nginx才可以解析php脚本。那么,这样配置的背后原理是什么?nginx、fastCGI、php-fpm之间又有什么关系呢?一直有这样的疑惑,由于无法理清nginx、php-fpm之间的关系,遇到nginx......
  • 服务器nginx配置,端口转发、https配置
    #usernobody;worker_processes1;#error_loglogs/error.log;#error_loglogs/error.lognotice;#error_loglogs/error.loginfo;#pidlogs/nginx.pid;events{worker_connections1024;}http{includemime.types;defau......
  • Vue项目打包部署上线时devServer.proxy代理失效如何解决?使用nginx的proxy_pass 代理跨
    Vue项目打包部署上线时devServer.proxy代理失效如何解决?使用proxy_pass代理跨域转发前言本篇文章用于记录项目前端部署上线遇到的问题,包含对问题的思考、解决思路,以及从中获得的收获。正确的部署流程我也写了一篇文章,供大家参考使用宝塔将Vue2+Nodejs全栈项目打包部署到腾讯云服......
  • Nginx的安装和配置
    Nginxnignx的安装形式三种安装形式:源代码编译安装安装步骤繁琐,耗时长,看你要装多少个模块,编译添加的模块多,安装的就更久rpm安装得提前准备好rpm包,以及相关依赖的rpm包用于离线安装nginx环境yum安装,用哪些形式的仓库阿里云自建yum仓库(的提前准备好ngin......