• 生产实践:

    调用Ansible来摘流/上线 nginx upstream机器

  • 学习技巧:

    Shell、Sed、Ansible、Pssh使用

  • 脚本内容:      

最近在搞成本优化,需要大量下线、缩容降配机器,由于代理没有平台来管理,多机房,多环境摘流,上下线操作比较麻烦,想搞个脚本小工具去nginx代理层批量摘...

Continue reading >>

最近开发有个需求,需要通过一个域名加国家地区代码跳转到不同机房的服务。由于中间还要走一层ingress,需要设置下指定域名的头,ingress才能打到指定后端服务。

在if语句中通过proxy_set_header来实现,发现nginx不支持,检测会报错:

nginx: [emerg] "proxy_set_header" directive is not allowed here...
Continue reading >>

在开始处理一个http请求时,nginx会取出header头中的host,与nginx.conf中每个server的server_name进行匹配,以此决定到底由哪一个server块来处理这个请求。

server_name与host匹配优先级如下:

1、完全匹配,选择所有字符串完全匹配的server_name,如www.test.com

2、通配符在前面的server_name,如*.test.com

3...

Continue reading >>

什么是CORS

CORS是一个W3C标准,全称是跨域资源共享(Cross-origin resource sharing)。它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。

当前几乎所有的浏览器(Internet Explorer 8+, Firefox 3.5+, Safari 4+和 Chrome 3+)都可通过名为跨域资源共享(Cross-O...

Continue reading >>

nginx工作进程示意图.png

(location =) > (location 完整路径) > (location ^~ 路径) > (location ~,~* 正则顺序) > (location 部分起始路径) > (/)

匹配符匹配规则优先级=精确匹配1^~以某个字符串开头,匹配上后则不再进行正则表达式匹配2~区分大小写的正则匹配3~*不区分大小写的正则匹配4!~区分大小写不匹配的正则5!~*...
Continue reading >>