• ingress-nginx自带认证功能【nginx自带】


    问题:通过nginx可以给某些web网站设置登录使用的用户名和密码,现在网站部署到k8s中,通过配置nginx-ingress->service->pod来访问的,怎么给这个网站再配置上访问的用户名和密码

    参考网址:https://blog.csdn.net/wzy_168/article/details/103138710

    方法:
    大致步骤如下:
    1.按照之前的流程安装httpd-tools,生成含有用户名和密码的加密文件
    2.在k8s中根据这个加密文件配置生成一个secret
    3.nginx-ingress中引用这个secret使用

    创建用户,设置密码

    $ htpasswd -c auth foo
    

    htpasswd不是centos7自带的命令,需要使用yum安装。

    yum install httpd-tools
    

    选项
    -c: 创建一个新的密码文件
    -b: 在命令行中一并输入用户名和密码而不是根据提示输入密码
    -D: 删除指定的用户
    -n: 不更新密码文件,只将加密后的用户名密码输出到屏幕上
    -p: 不对密码进行加密,采用明文的方式
    -m: 采用MD5算法对密码进行加密(默认的加密方式)
    -d: 采用CRYPT算法对密码进行加密
    -s: 采用SHA算法对密码进行加密
    -B: 采用bcrypt算法对密码进行加密(非常安全)
    参数
    用户名: 要创建或者更新的用户名
    密码: 用户的新密码

    根据加密文件生成secret

    注意其中命名空间demo-echo,secret 与目标服务 echo 在同一个 namespace 中。

    $ kubectl -n demo-echo create secret generic basic-auth --from-file=auth
    

    为目标服务设置 ingress

    注意其中的'basic-auth'改成你的

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: ingress-echo-with-auth-basic
      annotations:
        # type of authentication
        nginx.ingress.kubernetes.io/auth-type: basic
        # name of the secret that contains the user/password definitions
        nginx.ingress.kubernetes.io/auth-secret: basic-auth
        # message to display with an appropriate context why the authentication is required
        nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - foo'
    spec:
      rules:
      - host: auth-basic.echo.example
        http:
          paths:
          - path: /
            backend:
              serviceName: echo
              servicePort: 80
    

    延申

    1.若是nginx-ingress下的域名配置有多个路径,则需要给目标路径单独新配置一个nginx-ingress来使用
    2.不同的nginx-ingress可以配置同一个域名来使用

  • 相关阅读:
    XRTable 表新增列和行数据
    sql server 清理数据库日志
    C# 数字 转换 大写汉字
    NavBarControl 简单配置
    bandedGridView
    TileView 基本配置
    CardView 基本配置
    ButtonEdit 参数配置
    无边框窗体,鼠标移动窗体
    【网站】windows phpstudy v8.1搭建https
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/14964078.html
Copyright © 2020-2023  润新知