nginx的模块应用

1.location的定义

(1)当location中午定义时,默认使用server中的相关定义。

nginx的模块应用1.jpg

(2)当locating中有了相关定义,此时则启用location中的定义的内容。

nginx -t检查配置文件是否有语法错误

nginx -s reload重载nginx

nginx的模块应用2.jpg

(3)即使server中的root中的目录下有了/admin的目录,但是同时又在location中有了相关的定义,那么路径会去寻找location下的/admin,本次中location下是没有定义/admin的。

nginx的模块应用3.jpg

此时是可以使用别名定义的,alias

nginx的模块应用4.jpg

如下为在location中的/admin,所对应的文件路径下进行了admin目录的创建后得到的结果。

nginx的模块应用5.jpg

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

错误页文件配置

6.jpgnginx的模块应用

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

nginx的模块应用7.jpg

ngx_http_auth_basic_module模块

实现基于用户的访问控制,使用basic机制进行用户认证;

28、auth_basic string | off;

29、auth_basic_user_file file;

实例:

对于/admin做用户访问认证

(a)

nginx的模块应用8.jpg

(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

nginx的模块应用9.jpg

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

(0)
178babyhanggege178babyhanggege
上一篇 2016-10-30
下一篇 2016-10-30

相关推荐

  • 文件共享服务之NFS

    文件共享服务之NFS 文件共享服务之NFS 一、什么是NFS及NFS的工作流程 二、NFS发展及问题 三、NFS简单部署 一、什么是NFS及NFS的工作流程 NFS(Network File System,网络文件系统)  NFS是借助于RPC来实现功能的 RPC:(Remote  Procedure  Call  p…

    Linux干货 2016-04-19
  • N25期–第十三周作业

    1、 建立samba共享,共享目录为/data,要求:(描述完整的过程)  1)共享名为shared,工作组为magedu;  2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名;  3)添加sam…

    Linux干货 2017-04-05
  • Homework Week-7 RAID及bash编程

    1、创建一个10G分区,并格式为ext4文件系统;    (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;    (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; fdisk /dev/sda n …

    Linux干货 2016-09-26
  • 马哥教育网络班20期+第6周课程练习

    vim编辑器使用总结 一、文件的打开与关闭             打开文件:                 # vim [OPTION]… FILE…      …

    Linux干货 2016-07-17
  • 网络配置详解(一)

    Linux网络属性配置      ifcfg命令家族:ifconfig, route, netstat      ifconfig命令:      ifconfig [INTERFACE]      # ifconfig -a 显示所有接口…

    Linux干货 2017-01-02
  • CentOS6.7 Xen安装部署和基本测试小结

    目录:    1. Xen的简介    1.1  Xen的大体结构    1.2 Xen对VM的称呼    1.3 Xen对CPU和内存的虚拟化过程    1.4 Xen对IO设备的虚拟化过程    1.5 Linux Kerne…

    Linux干货 2016-04-19