Nginx给网站添加用户认证配置
Nginx给网站添加用户认证配置( Basic HTTP authentication) 说明:ngx_http_auth_basic_module模块实现让访问者只有输入正确的用户密码才允许访问web内容。web上的一些内容不想被其他人知道,但是又想让部分人看到。nginx的http auth模块以及Apache http auth都是很好的解决方案。 默认情况下nginx已经安装了ngx_http_auth_basic_module模块。 Nginx认证配置实例生成认证文件123# printf "test:$(openssl passwd -crypt 123456)\n" >> /home/htpasswd# cat /home/htpasswd test:xyJkVhXGAZ8tM **注意:**这里账号:test,密码:123456,记住认证文件路径 配置网站conf文件123456789101112131415server{ listen 80; server_name www.moer...
EnvoyFilter-ChatGPT译文
介绍 EnvoyFilter 提供了一种机制,可以自定义 Istio Pilot 生成的 Envoy 配置。使用 EnvoyFilter 修改某些字段的值、添加特定过滤器,甚至添加全新的监听器、集群等。这个功能必须小心使用,因为不正确的配置可能会破坏整个网格。与其他 Istio 网络对象不同,EnvoyFilters 是附加应用的。在特定命名空间中给定工作负载可以存在任意数量的 EnvoyFilters 。这些 EnvoyFilters 的应用顺序如下:所有位于配置根命名空间中的 EnvoyFilters ,然后是匹配工作负载命名空间中所有匹配到的 EnvoyFilters。 注意点注意1:此 API 的某些方面与 Istio 网络子系统以及Envoy XDS API 的内部实现密切相关。虽然EnvoyFilter API本身将保持向后兼容性,但通过此机制提供的任何 envoy 配置都应该在Istio代理版本升级时进行仔细监控,以确保已弃用字段被适当地删除和替换。 注意2:当多个Envoy Filters 绑定到给定名称空间中相同工作负载时,在创建时间顺序上按顺序处理所有补丁。...
idea添加对istio的智能提示
转自: https://blog.51cto.com/u_15127588/3305078 JetBrains 系列 IDE 有一个非常好用的 Kubernetes 的官方插件:JetBrains Kubernetes Plugin 。该插件支持资源对象关键字的自动补全和语法检查,这对于编写或者修改 YAML 文件非常方便。但是此前版本不支持 自定义的 CRD 对象,这对于该插件的易用性来说,略有一些遗憾。 现在新版的 Kubernetes 插件已经支持通过文件导入或者 URL 导入 CRD 定义文件,从而支持任意 CRD 资源对象的关键字自动补全和语法检查。 12Custom resource definition (CRD) supportCustom resources can be validated by providing complementary OpenAPI 2.0 files with CRD schemas and/or CRD resource definitions (YAML) (limited support). 下面以服务网格 Istio ...
istio问题整理
1. Service 端口命名约束Istio 支持多平台,不过 Istio 和 Kubernetes 的兼容性是最优的,不管是设计理念,核心团队还是社区,都有一脉相承的意思。但 Istio 和 Kubernetes 的适配并非完全没有冲突,一个典型问题就是 Istio 需要 Kubernetes service 按照协议进行端口命名(port naming)。 端口命名不满足约束而导致的流量异常,是使用 mesh 过程中最常见的问题,其现象是协议相关的流控规则不生效,这通常可以通过检查该 port LDS 中 filter 的类型来定位。 原因Kubernetes 的网络对应用层是无感知的,Kubernetes 的主要流量转发逻辑发生在 node 上,由 iptables/ipvs 来实现,这些规则并不关心应用层里是什么协议。 Istio 的核心能力是对 7 层流量进行管控,但前提条件是 Istio 必须知道每个受管控的服务是什么协议,istio 会根据端口协议的不同,下发不同的流控功能(envoy filter),而 Kubernetes 资源定义里并不包括七层协议信...
利用istio实现灰度发布
Kubernetes 中如何实现灰度发布当你Kubernetes 集群中部署业务时,可以利用 Kubernetes 原生提供的灰度发布的方式去上线业务。这种方式是通过在旧版本和新版本的服务之间,定义一个差异化的 Label,根据不同版本之间的公共 Label 负载流量到后端 Pod,最终实现根据 Pod 的副本数控制流量的百分比。 如下图所示:用户定义了两个 Deployment 对象,其中旧版本名为 frontend-stable,有3个副本。新版本为 frontend-canary,有1个副本。此时定义了一个 Service 对象,使用它们之间公共的 Label 进行选择。这就使得用户访问 frontend 这个 Service 时,能以 3:1 的比例同时访问到两个版本。并且还可以通过调整副本数持续控制流量比例,最终达到完整上线。 Kubernetes 默认的实现方式在简单的部署场景下很有效,但是在一些复杂场景中,仍然会有较大的局限,如: 业务配置自动伸缩后,会直接影响灰度发布的流量比例 低百分比的流量控制占用资源高,如 1 % 的流量到达新版本,则至少需要 100 ...
查看Envoy访问日志
简介: istio-proxy也是我们常说的sidecar,istio默认使用envoy注入的,envoy的日志级别包括trace, debug, info, warning, error, critical, off Envoy 访问日志记录了通过 Envoy 进行请求 / 响应交互的相关记录,可以方便地了解具体通信过程和调试定位问题。 修改日志级别的几种方式全局配置istio配置都是在configmap中的,可以通过修改configmap来修改全局的proxy日志级别: 开启 Envoy 访问日志,执行以下命令修改 istio 配置1kubectl -n istio-system edit configmap istio 1234data: mesh: |- accessLogEncoding: JSON accessLogFile: /dev/stdout 其中,accessLogEncoding表示 accesslog 输出格式,Istio 预定义了 TEXT 和 JSON 两种日志输出格式。默认使用 TEXT,通常改成 JSON 以提升...
记录jaeger的安装及简单使用
前言Jaeger 是一个开源的端到端的分布式跟踪系统, 允许用户在复杂的分布式系统中监控和排查故障。 利用Rancher的安装方式安装cert-manager参考文档: jaeger requires:https://www.jaegertracing.io/docs/1.49/operator/#prerequisite cmctl(the tool which is to manage and verify cert-manager) install:https://cert-manager.io/v1.6-docs/usage/cmctl/#installation cert-manager verify:https://cert-manager.io/v1.6-docs/installation/verify/ 安装cert-manager:https://cert-manager.io/v1.6-docs/installation/kubectl/ 默认静态安装cert-manager:https://cert-manager.io/v1.6-docs/installa...
七层网络协议
7层是指OSI七层协议模型,主要是:应用层(Application)、表示层(Presentation)、会话层(Session)、传输层(Transport)、网络层(Network)、数据链路层(Data Link)、物理层(Physical)。 OSI 是Open System Interconnect的缩写,意为开放式系统互联。 OSI 七层协议模型是一个通用的模型,可以用于各种网络。它提供了一个理解和描述网络通信的框架。 OSI七层参考模型的各个层次的划分遵循下列原则: 1、同一层中的各网络节点都有相同的层次结构,具有同样的功能。 2、同一节点内相邻层之间通过接口(可以是逻辑接口)进行通信。 3、七层结构中的每一层使用下一层提供的服务,并且向其上层提供服务。 4、不同节点的同等层按照协议实现对等层之间的通信。 高级图示 物理层(Physical Layer)物理层是OSI 模型的最低层,负责数据在物理介质(如电缆、光纤)上的传输。它定义了数据的物理格式、传输速率和电信号的形式。 OSI的物理层规范是有关传输介质的特这些规范通常也参考了其他组织制定的标准。连接头、...
记录支付宝支付开发
支付宝相关概念网站支付DEMO传送门:手机网站支付 DEMO | 网页&移动应用 RSA、加密加签、密钥 对称加密 对称加密:发送方和接收方用的是同一把密钥,存在问题:当某一方将密钥泄漏之后,发送的消息可以被截取获悉并且随意进行通信。 非对称加密 非对称加密:发送方和接收方使用的不是同一把密钥,发送方使用密钥A对明文进行加密,接收方使用密钥B对密文进行解密,然后接收方将回复的明文用密钥C进行加密,发送方使用密钥D进行解密。采用非对称加密的好处是:即使有密钥被泄漏也不能自由的通信。 公钥与私钥 公钥和私钥是一个相对概念 密钥的公私性是相对于生成者而言的。发送方通过密钥A对明文进行加密,密钥A是只有发送方自己知道的,接收方想要解密密文,就需要拿到发送方公布出来的密钥B。 一对密钥生成后,保存在生产者手里的就是私钥(自己持有,不公开) 生成者发布出去让大家用的就是公钥 此时: 密钥A 和 密钥C 就是私钥,私钥用于加密,确保发送的消息不会被他人篡改 密钥B 和 密钥D 就是公钥,公钥用于解密,可以暴露出去。 加密 和 数字签名 签名:为了防止中途传输...
nexus管理npm包,npm包发布在私有仓库(nexus)中
创建blob存储为其创建一个单独的存储空间。 进入设置 依次建立npm仓库 创建npm(hosted)私有仓库(hosted改成allow redeploy,这样才能运行重复上传一个包,不然会报400:bad request) 创建npm(proxy)仓库(proxy的remote storage设置:当私有仓库和代理仓库缓存包里无请求的包时,就会通过这里配置的地址去服务器下载需要的包,然后再缓存下来) 创建npm(group)仓库 配置权限 注意点: npm install后报错如下,可通过配置npm bearer token realm解决 检查npm nexus的 Realms设置,把npm Bearer Token realm放入Active中,并保存 检查一下Nexus Repository Manager上的Anonymous是否开放 使用私有仓库方式为某一个组配置仓库地址 1npm config set @chint:registry http://10.104.30.197:8081/repository/npm-group/ 全局配...
