HTTP请求时的变量
变量名
涵义
arg_参数名
URL中
query_string
与arg变量相同
args
全部url参数
is_args
如果请求url中有参数则返回? ,否则返回空
content_length
http请求中标识包体长度content_length头部的值
content_type
标识包体请求类型的content_type头部的值
uri
请求的uri(不包含?)
document_uri
与uri完全相同
request_uri
请求的url(包括完整的uri和参数)
scheme
协议名比如http或者h...
利用google cloud sdk去查看谷歌 镜像站的镜像 , 获取到之后就同步到自己的dockerhub上, 在github上的项目构建2个分支 , 一个master , 用来存放项目 , 一个develop分支, 用来放构建出来的镜像
安装travis我们用rvm和gem来安装travis
安装rvm官方网站:www.rvm.io 具体的安装步骤都在官网
1curl -sSL https://get.rvm.io | bash -s stable
执行这个脚本 , 等待一段时间执行完成
1rvm version //在线脚本安装完成之后 查看rvm是否安装成功
安装r...
前置知识:nginx接受请求流程是什么先是进行三次握手(SYN , SYN+ACK , ACK) ——->负载均衡选中工作在cpu上的worker ,———>epoll_wait, ——->accept建立连接, 之后分配内存池 (connection_pool_size:512)——————–>ngx_http_init_connection设定回调方法 , epoll_ctl , 添加超时定时器(client_header_timeout: 60s)
之后内核接受到来着客户端的DATA , 这个回调方法就开始处理 , gx_http_wait_reques...
##location指令
12345678Syntax:location [ = | ~ | ~* | ^~ ] uri { ... }location @name { ... }Default: —Context: server, locationSyntax: merge_slashes on | off;Default: merge_slashes on;Context: http, server
location匹配规则
合并连续的/符合 merge_slashes on
前缀字符串:
常规
= : 精确匹配
^~匹配上后不在进行...
##说明
要说明的是 , 这个rewrite有2个 , 一个是server_rewrite , 一个是rewrite , 这个阶段是由http框架执行的 , 他们执行的阶段顺序是这样的: server_rewrite(第二阶段)------>find_config(第三阶段)----->rewrite(第四阶段) , 但是server_rewrite阶段和rewrite阶段用的都是同一个模块:rewrite模块
rewrite模块提供了以下指令:
return指令123456Syntax:return code [text];return code URL;return...
http_limit_conn_module模块通过http_limit_conn_module模块来限制每个客户端的并发连接
它的生效服务是全部的worker进程 , 能不能生效就取决于realip模块取到的真实ip
###限制并发连接数
123Syntax: limit_conn zone number;Default: —Context: http, server, location
定义共享内存大小和key关键字123Syntax: limit_conn_zone key zone=name:size;Default: —Context: htt
限制并发时的日志级...
处理proxy_pass指令
cache命中则发生响应头部 , 没有命中则根据指令生成发往上游http头部和包体
指令proxy_request_buffering如果是on的话, 则读取请求完整包体, 如果为off则根据负载均衡选择上游服务器
发送请求(边读包体边发)
上游接收处理响应头部
如果proxy_buffering是on的话 ,则接受完整的响应包体再发送,如果为off的话 , 则先发送响应头部,响应包体则边读边发
如果开启cache则包体加入缓存
proxy模块对上游使用http/https协议进行反向代理
123Syntax: proxy_pass URL;Defau...
1.如何进行热部署
先将现有的nginx二进制文件备份一下cp nginx nginx.old
再将编译好的nginx二进制文件复制进来
执行kill -USR2 112233 这个112233是现在的nginx的master进程pid号 , 这是告诉nginx的master要优雅退出
执行kill -WINCH 112233 这个告诉老的nginx的worker进程要优雅退出
2.如何进行日志切割
先将老的access.log备份
执行nginx -s reopen , 这个时候就会再重新生成一份access.log , 当然也可以执行kill -USR1 112233
3.ng...
pod调度分为3个步骤
预选过程(Predicate): 排除不符合pod要求的节点
优选过程(Priority): 根据 优先级找出最佳匹配的节点
选择(Select)
预选阶段策略Predicate源码具体的地址: https://github.com/kubernetes/kubernetes/blob/master/pkg/scheduler/algorithm/predicates/predicates.go
主要是分为三类
###GeneralPredicates类型
GeneralPredicates
HostName : 检查pod对象是否定义了pod.spec....
生成证书和secret123456789openssl genrsa -out tls.key 2048openssl req -new -x509 -key tls.key -out tls.crt -subj /C=CN/ST=shanghai/L=shanghai/O=devops/CN=tomcat.test.comkubectl create secret tls tomcat-ingress-secret --cert=tls.crt --key-tls.keykubectl get secretkubectl describe secret tomcat-ingress-s...