Nginx配置解析整理( 二 )


gzip_types text/plain application/x-JAVAscript text/css application/xml; 压缩类型
默认就已经包含text/html , 所以下面就不用再写了 , 写上去也不会有问题 , 但是会有一个warn 。
默认值: gzip_types text/html (默认不对js/css文件进行压缩)
压缩类型 , 匹配MIME类型进行压缩
设置哪压缩种文本文件可参考 conf/mime.types
gzip_disable "MSIE [1-6].";E6及以下禁止压缩
gzip_vary on;给CDN和代理服务器使用 , 针对相同url , 可以根据头信息返回压缩和非压缩副本
server
listen 80; 监听端口
server_name www.fangzy.me; 域名可以有多个 , 用空格隔开
charset koi8-r; 编码集
日志相关
access_log "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G" main;
root /data; 主目录
index index.html; 默认页
虚拟主机
虚拟主机是一种特殊的软硬件技术 , 它可以将网络上的每一台计算机分成多个虚拟主机 , 每个虚拟主机可以独立对外提供www服务 , 这样就可以实现一台主机对外提供多个web服务 , 每个虚拟主机之间是独立的 , 互不影响的
通过nginx可以实现虚拟主机的配置 , nginx支持三种类型的虚拟主机配置
  • 基于ip的虚拟主机 ,  (一块主机绑定多个ip地址)
  • 基于域名的虚拟主机(servername)
  • 基于端口的虚拟主机(listen如果不写ip端口模式)
http
【Nginx配置解析整理】server {
表示一个虚拟主机
}
}
location
映射/虚拟目录
location = / {
[ configuration A ]
}
?
location / {
[ configuration B ]
}
?
location /documents/ {
[ configuration C ]
}
?
location ^~ /images/ {
[ configuration D ]
}
?
location ~* .(gif|jpg|jpeg)$ {
[ configuration E ]
}
location [ = | ~ | ~* | ^~ ] uri { ... }
location URI {} 对当前路径及子路径下的所有对象都生效;
location = URI {} 注意URL最好为具体路径 。精确匹配指定的路径 , 不包括子路径 , 因此 , 只对当前资源生效;
location ~ URI {} location ~* URI {} 模式匹配URI , 此处的URI可使用正则表达式 , ~区分字符大小写 , ~*不区分字符大小写;
location ^~ URI {} 禁用正则表达式
优先级:= > ^~ > ~|~* > /|/dir/
location配置规则
location 的执行逻辑跟 location 的编辑顺序无关 。矫正:这句话不全对 , “普通 location ”的匹配规则是“最大前缀” , 因此“普通 location ”的确与 location 编辑顺序无关;
但是“正则 location ”的匹配规则是“顺序匹配 , 且只要匹配到第一个就停止后面的匹配”;
“普通location ”与“正则 location ”之间的匹配顺序是?先匹配普通 location  , 再“考虑”匹配正则 location。
注意这里的“考虑”是“可能”的意思 , 也就是说匹配完“普通 location ”后 , 有的时候需要继续匹配“正则 location ” , 有的时候则不需要继续匹配“正则 location ” 。两种情况下 , 不需要继续匹配正则 location :
  • ( 1 )当普通 location 前面指定了“ ^~ ” , 特别告诉 Nginx 本条普通 location 一旦匹配上 , 则不需要继续正则匹配;
  • ( 2 )当普通location 恰好严格匹配上 , 不是最大前缀匹配 , 则不再继续匹配正则
IP访问控制
location {
deny IP /IP段
deny 192.168.1.109;
allow 192.168.1.0/24;192.168.0.0/16;192.0.0.0/8
}
用户认证访问
模块ngx_http_auth_basic_module 允许使用“HTTP基本认证”协议验证用户名和密码来限制对资源的访问
location ~ (.*).avi$ {
auth_basic "closed site";
auth_basic_user_file conf/users;
}
账号密码通过httpd-tools配置
yum install httpd
htpasswd -c -d /usr/local/users zhangyang
nginx访问状态监控
location /basic_status {
stub_status on;
}
反向代理


推荐阅读