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

相关推荐

  • 磁盘管理

    磁盘设备 一切皆文件 所有的Linux中的设备都可以使用下面命令进行操作:open(), read(), write(), close()(这些是C的函数) 块设备:随机访问 字符设备:线性访问 设备号码: 主设备号:major number,标识设备类型 8是主要设备编号,代表类型 次设备号:minor number…

    Linux干货 2016-09-01
  • Linux的哲学思想

    Linux的哲学思想 一切皆文件 在linux中所有的一切,都是可以通过ls进行查询的到的,甚至可以说ll查看详细信息时表现形式为文件,所有的设备,所有的文件不论后缀,只是一个单纯文件通过vim可以编辑一切 单一目的的小程序,组合小程序完成复杂任务 在linux中,每一个命令都是对应一个功能,通过不同的参数来完成不同的要求,通过繁多的小的命令来完成大型的要求…

    Linux干货 2016-10-30
  • 8.10作业

    1、编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小。 echo  "your host is `hostname` " echo  "ip address is `ifconfig | sed -n…

    Linux干货 2016-08-15
  • linux网络管理

    Linux网络配置 摘要:Linux 对网络的管理分为 静态指定和动态管理。 静态指定 静态指定ip一般有命令              ifconfig       &…

    Linux干货 2016-04-05
  • yum的简单配置与使用

    yum 的基本配置与使用 1、yum:是rpm包管理器的前端工具,它是基于C/S结构,就客户端服务器模式 2、yum使用前需先配置好服务端的仓库(yum源) 3、yum客户端是通过文件传输协议来获取到yum源上的软件包的,yum一共支持四种传输协议 http:// https:// ftp:// file:// (这是一个本地路径,当yum源为本地光盘时,使…

    Linux干货 2017-06-11
  • 进程管理

    1、ps命令 查看当前时刻的进程状态,通过此命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等 进程状态:     运行态:running     就绪态:ready     睡眠态: &…

    Linux干货 2016-09-10