API 网关 - Kong 简介

简介

Kong 是由 Mashape 公司开源的,基于 Nginx 的 API Gateway ( Nginx 中运行的 Lua 应用程序 )。

特点

功能:授权、日志、IP 限制、限流、API 统计分析、请求转化、跨域(CORS)等等。
可扩展: 支持分布式

Nginx location 匹配规则

匹配命令

~   正则匹配,区分大小写
~* 正则匹配,不区分大小写
= 普通字符精确匹配,如果找到,停止搜索
^~ 普通字符匹配(如果该选项匹配,只匹配该选项,一般用来匹配目录)
/ 通用匹配,如果没有其它匹配,任何请求都会匹配到
@ 定义命名的 location,使用在内部定向时,例如:error_page、try_files

匹配优先级(与在配置文件中的顺序无关)

1. 精确匹配 ”=“ 会第一个被处理。如果发现精确匹配,停止搜索。
2. 匹配最长的规则,如果这个规则带有 ^~ 修饰符,停止搜索。
3. 存储 #2 的最长匹配规则,然后按在配置文件中的定义顺序匹配正则表达,若匹配到正则表达式,停止搜索。
4. 若没有匹配到正则表达式,使用存储的 #2 的最长匹配。

Nginx 超时配置

client_header_timeout

客户端向服务端发送一个完整的 request header 的超时时间。如果客户端在指定时间内没有发送一个完整的 request header,Nginx 返回 HTTP 408(Request Timed Out)。

Defines a timeout for reading client request header. If a client does not transmit the entire header within this time,
the 408 (Request Time-out) error is returned to the client.


CSRF 简介

CSRF 是什么?

CSRF(Cross-site Request Forgery)跨站请求伪造,缩写为:CSRF/XSRF。 也被称为:one click attack/session riding。

siege 压测工具

简介

siege 是一款高性能的 http 压力测试工具。
siege 支持身份验证、 cookies、 http、 https 和 ftp 协议。

应用举例

1. 对指定站点进行压测

siege -c 300 -t 5s URL

2.文件中包含的若干URL进行批量测试

siege -c 300 -t 5s -f URL_File_Name

3. 支持多个Header参数

siege -c 300 -t 5s -H "Authorization: XXXX" -H "SX: 1212" URL

4. 支持application/json方式请求

siege -c 300 -t 5s 'URL POST < data.json'
siege -c 300 -t 5s 'URL PUT < data.json'

sanic 实践(0.6.0)

Overview

Sanic is a Python 3.7+ web server and web framework that’s written to go fast. It allows the usage of the async/await syntax added in Python 3.5, which makes your code non-blocking and speedy.

ansible 简介

Ansible 是基于python开发的,对于客户端的要求是需要有SSH和Python(如果python版本过低则 需要安装python-simplejson module)。