nignx

location匹配规则(优先级: =, ^~, ~/~*, 无)

  • = 严格匹配这个查询。如果找到,停止搜索。
  • ^~ 匹配路径的前缀,如果找到,停止搜索。
  • ~ 为区分大小写的正则匹配
  • ~* 为不区分大小写匹配

rewrite 匹配规则

  • rewrite break - url重写后,直接使用当前资源,不再执行location里余下的语句,完成本次请求,地址栏url不变
  • rewrite last - url重写后,马上发起一个新的请求,再次进入server块,重试location匹配,超过10次匹配不到报500错误,地址栏url不变
  • rewrite redirect – 返回302临时重定向,地址栏显示重定向后的url,爬虫不会更新url(因为是临时)
  • rewrite permanent – 返回301永久重定向, 地址栏显示重定向后的url,爬虫更新url

ssi (on)

从列子不难看出 ssi的 的作用, 有点像jsp的include 标签 ,不同的是  ssi 引用的 页面 来自静态页面 ,是不经过后台的。

Lua

中文wikihttps://github.com/iresty/nginx-lua-module-zh-wiki

自定义脚本路径

# lua 文件的位置

# lua_package_path "/usr/local/etc/openresty/nginx/config/lua_src/?.lua;";

# nginx启动阶段时执行的脚本,可以不加

# init_by_lua_file '/usr/local/etc/openresty/nginx/config/lua_src/init.lua';

注意点:

  • body_filter_by_lua阶段不能用http,如果需要使用,建议放在access_by_lua、content_by_lua阶段
  • body_filter_by_lua阶段ngx.arg[1] 为body内容,ngx.arg[2] 为eod 标记是否结束
  • content_by_lua为返回的body内容
  • 使用gsub时候,需要替%, local formatPercentStr = string.gsub(decodeData, '%%', '%%%')