1.location的定义
(1)当location中午定义时,默认使用server中的相关定义。
(2)当locating中有了相关定义,此时则启用location中的定义的内容。
nginx -t检查配置文件是否有语法错误
nginx -s reload重载nginx
(3)即使server中的root中的目录下有了/admin的目录,但是同时又在location中有了相关的定义,那么路径会去寻找location下的/admin,本次中location下是没有定义/admin的。
此时是可以使用别名定义的,alias
如下为在location中的/admin,所对应的文件路径下进行了admin目录的创建后得到的结果。
2.在一个server中location配置段可存在多个,用户实现从uri到文件系统的路径映射;nginx会根据用户请求的uri来检查定义的所有location,并找出一个最佳匹配,而后应用其配置;
=:对URI做精确匹配;例如,http://www.magedu.com/,
location = / {
….
}
~:对URI做正则表达式模式匹配,区分字符大小写。
~*:对URI做正则表达式模式匹配,不区分字符大小写;
^~:对URI的左半部分做匹配检查,不区分字符大小写;
不带符号:匹配起始于此uri的所有的uri。
匹配优先级:=,^~,~/~*,不带符号;
2.alias path;
定义路径别名,文档映射的另一种机制;仅能用于location上下文;
注意:location中使用root指令和alias指令的意义不同;
(a)root,给定的路径对应于location中的/uri/左侧的/;
(b)alias,给定的路径对应于location中的/uri/右侧的/;
3.index.file ….;
默认资源:http,server,location
4.error_page code…[=[response]]uri;
Defines
错误页文件配置
5.try_files file … uri;
定义客户端请求的相关配置;
6.keepalive timeout timeout [header_timeout];
设定保持连接的超时时长,0表示禁止长连接;默认为75s;
7.keepalive_requests number;
在一次长连接上所允许请求的资源的最大数量,默认为100;
8.keepalive_disable none | browser …;
表示对哪种浏览器禁用keepalive;
9.send_timeout time;
向客户端发送响应报文的超时时长,此处,是指两次写操作之间的间隔时长;
10.client_body_temp_path path [level1 [level2[level3]]]
设定用于存储客户端请求报文的body部分的临时存储路径及子目录结构和数量;
16进制的数字;
client_body_temp_path path /var/tmp/client_body 1 2 2
16个一级子目录,256个二级子目录,256个三级子目录
对客户端进行限制的相关的配置
11、limit_rate rate;
限制响应给客户端的传输速率,单位是bytes/second,0表示无限制
12、limit_except method….{…..}
限制对指定的请求方法之外的其它方法的使用客户端;
limit_except GET {
allow 192.168.1.0/32;
deny all;
}
文件操作优化的相关相关配置
AIO指的的异步IO机制
13、aio on |off |threads[=pool];
是否启用aio功能
14、directio size | off
在Linux主机启用O_DIRECT标记,此处意味着文件大于等于给定的大小时使用,例如directio 4m;
15、open_file_cacahe off;
open_file_cacahe max=N[inactive=time];
nginx可以缓存以下三种信息:
(1)文件的描述符、文件的大小和最近一次的修改时间;
(2)打开的目录结构;
(3)没有找到的或者没有权限访问的文件的相关信息;
max=N:可以缓存的缓存项的上限;达到上限后会使用LRU算法实现缓存管理;
inactive=time:缓存项的非活动时长,在此处指定的时长内未被命中的或命中的次数少于open_file_cache_min_user指令所指定的次数的缓存项即为非活动项;
23、open_file_cache_vaild time;
缓存项有效性的检查频率;默认为60s;
24、open_file_cache_min_uses number;
在open_file_cache指令的inactive参数指定的时长内,至少应该被命中多少次方可被归类为活动项;
25、open_file_cache_errors on |off;
是否缓存查找时发生错误的文件一类的信息;
nginx——http_access_module模块;
实现基于i的访问控制功能
26、allow address|CIDR | unix: | all;
27、deny address | CIDR |unix: | all;
http,server,location,limit_except
ngx_http_auth_basic_module模块
实现基于用户的访问控制,使用basic机制进行用户认证;
28、auth_basic string | off;
29、auth_basic_user_file file;
实例:
对于/admin做用户访问认证
(a)
(b)设置用户名和密码
htpasswd -c -m /etc/nginx/.ngpasswd tom
htpasswd -m /etc/nginx/.ngpasswd jerry
注意:htpasswd命令由httpd-tools所提供
ngx_http_stub_status_module模块
用于输出nginx的基本状态信息
Active connections:291
server accepts handled requests
16630948 16630948 31070465
Reading:6 Writing:179 Wating:106
Active connections:活动状态的连接数;
accepts:已经接受的客户端请求总数
handled:已经处理完成的客户端请求的总数
requests:客户端发来的总的请求数;
Reading:处于读取客户端请求报文首部的连接的连接数;
Writing:处于向客户端发送响应报文过程中的连接数;
Wating:处于等待客户端发出请求的空闲连接数;
30、stub——status;注意需要由stub模块
配置样例:
location /basic_status {
stub_status;
}
access_log不能放进stub_status的location中,放在server中有效。
ngx_http_log_module模块
The ngx_http_log_module
31、log_format name string…;
string可以使用nginx核心模块及其它模块的内嵌的变量;
课外作业:为nginx定义使用类似于http的commbined的格式。
32、access_log path[fomat [buffer=size ][gzip [level]][flush=time]][if=condition];
access_log off;
访问日志文件路径、格式及相关的缓冲的配置;
buffer=size
flush=time
33、open_log_file_cache max=N[inactive=time][min_uses=N][valid=time];
open_log_file_cache off;
缓存各日志文件相关的元数据信息;
max:缓存的最大文件描述符数量
min_users:在inactive指定的时长内访问大于等于此值方可被当做活动项
inactive:非活动时长
vaild:验证缓存中各缓存项是否为活动项的时间间隔;
URL重写
/bbs/输出论坛,—->/forum/
ngx_http_rewrite_module模块:
将用户请求的URI基于regex所描述的模式进行检查,而后完成替换;
1、rewrite regex replacement [flag]
将用户请求的URI基于regex所描述的模式进行检查,匹配到时将其替换为replacement指定的新的URI;
注意:如果在同一级配置块中存在多个rewrite规则,那么会自下而下逐个检查。被某条件规则替换完成后,会重新一轮的替换检查,因此,隐含有循环机制;
如果replacement是以http://或https://开头,
url/——->newurl/——>new_new_url
rewrite
rewrite
rewrite
1、[flag]
last:重写完成后停止对当前URI在当前location中的后续其它重写操作,而后对新的URI启动新一轮重写检查。
break:替换完以后,跳出循环,防止实现死循环。重写完成后停止对当前URI在当前location中后续的其它重写操作,而后直接跳转至重写规则配置块之后的其它配置;结束循环;
redirect:重写完成后以临时重定向方式直接返回重写后生成的新URI给客户端,由客户端重新发起请求;不能以http://或https://开头;例如可以接https://www.baidu.com,是由客户端重新发起的。
permanent:重写完成后以永久重定向方式直接返回重写后生成的新URI给客户端,由客户端重新发起请求;不能以http://或https://开头;例如可以接https://www.baidu.com,是由客户端重新发起的。
2、return
return code [text];
return code URL;
return URL;
3、rewrite_log on |off;
是否开启重写日志;
4、if (condition){….}
引入一个新的配置上下文,条件满足时,执行配置块中的配置指令;server,location;
condition:
比较操作符:
==
!=
~:模块匹配,区分字符大小写;
~*:模块匹配,不区分字符大小写;
!~:模块不匹配,区分字符大小写;
!~*:模块不匹配,不区分字符大小写;
文件及目录存在性判断:
-e,!-e
-f,!-f
-d,!-d
-x,!-x
5、set $variable value
用户自定义变量;
ngx_http_gzip——module:
1、gzip on | off
2、gzip_comp_level level;
3、gzip_disable regex …;
4、gzip_min_length length;
启用压缩功能的响应报文大小或阀值。
5、gzip_buffers number size;
支持实现压缩功能时为其配置的缓冲区数量以及每个缓冲区的大小。
6、gzip——proxied off |expired
nginx 作为代理服务器接收到从被代理服务器发送的响应报文后,在何种条件下启用压缩功能的;
off:对代理的请求不启用
no-cache,no-store,private:表示从被代理服务器收到的响应报文首部的chche-contrller
7、gzip_types mime-type …;
压缩过滤器,仅对此处设定的MIME类型的内容启用压缩功能;
gzip_disable Chrome;对Chreome禁用压缩功能。
原创文章,作者:178babyhanggege,如若转载,请注明出处:http://www.178linux.com/54839