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 21:02
下一篇 2016-10-30 21:02

相关推荐

  • 马哥M20-1第一周作业

    作业1:通过echo实现字体闪烁,添加下划线,改变颜色      (1)添加下划线    (2)字体闪烁   (3)改变颜色 作业2:显示前10天的年月日 作业3:screen的使用

    Linux干货 2016-07-29
  • python面向对象第二周魔术方法详解

    魔法方法及其使用__开头和结束的方法,定义外部没有办法直接调用,但会有影响使用运算符号的魔法方法, + ,-,*,/,%,//,**, __add__,__sub__,__mul__,__truediv__,__mod__,__floordiv__,__pow__,__divmod__(?),系统内部对于数值型,字符串型,容器内型都定义了其中部分或者全部的运…

    Linux干货 2017-11-22
  • 马哥教育网络班22期+第八周课程练习

    1. 请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥:工作在OSI模型的数据链路层,将两个局域网连起来,根据MAC地址来转发帧。它可以有效地连接两个LAN,使本地通信限制在本网段内,并转发相应的信号至另一网段,网桥通常用于连接数量不多的、同一类型的网段,它可以扩展网络的距离或范围,而且可提高网络的性能、可靠性和安全…

    Linux干货 2016-12-19
  • Linux目录配置及文件名种类与扩展名

    Linux目录配置及文件名种类与扩展名 一、FHS目录配置标准 在FHS标准诞生之前,由于有很多公司为Linux开发产品,而又各自有各自的存放路径,所以导致管理困难,因此诞生了FHS标准。 FHS 依据文件系统使用的频繁与否与是否允许用户随意更改,将目录定义成四种交互作用的形态。如下图 可分享的:可以分享给其他系统挂载使用。 不可分享:自…

    Linux干货 2016-08-02
  • 第四周(1):课堂练习与作业

    课堂练习: 1、删除/etc/grub.conf文件中所有以空白开头的行行首的空白字符 [root@centos6 ~]# sed 's@^[[:space:]]\+@@' /etc/grub.conf 2、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符 …

    Linux干货 2016-08-10
  • oracle6.7使用udev作为asm

    1、需求 oracle6.7使用udev作为asm /dev/sdb <–> /dev/asm-diskb /dev/sdc <–> /dev/asm-diskc /dev/sdd <–> /dev/asm-diskd /dev/sde <–> /dev/asm-…

    Linux干货 2016-07-29