一。简介
nginx在netcraft网站上的数据显示,nginx的市场份额已经高达15%,意味着世界上几百万台web服务器运行着nginx,那nginx为什么如此生猛呢?
nginx的功能:
1.作为web反向代理服务器
2.作为邮件代理服务器
3.具备缓存功能
4.具备负载均衡功能,且能检测后端服务器的健康状态
5.极强的扩展性,几十种的第三方模块
nginx结构分析
包括4大类模块
1主模块,管理日志,权限,调度器模型等
2.HTTP模块:包括标准模块和可选模块
标准模块包括upstream ,proxy,http_core,rewrite,fastcgi,header等招牌模块
可选模块包括FLV,SSL,GeoIP等
3.Mail模块:包括Mail Core ,POP3,SMTP,PROXY等模块
4.Third Party模块:包括Auth Pam,Lua,等模块
内置变量
引用不同的模块,就会有新的环境变量可用,其中较常见的一些变量如下
$document_root :web主目录
$document_uri :访问uri
$host :主机
$http_user_agent :用户浏览器信息
$http_cookie :cookie
$request_method :请求类型
$remote_addr :user IP
$remote_port :user 端口
$request_filename :请求文件名
$request_uri :请求uri
这些变量一般用在正则表达式匹配中,进行rewrite
二。一些相关功能的实现,比如upstream,rewrite,header
upstream的算法:ip-hash,rr,lc
~ 正则匹配 区分大小写
~* 正则匹配,不区分大小写
^ ~ 不进行正则匹配
= 精确匹配