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:03

相关推荐

  • Mysql 备份

    Mysql 备份 ============================================================================= =============================================================================    &n…

    2016-11-22
  • 进程管理和计划任务

    进程管理使用的工具以及命令,计划任务的创建和执行,以及工作中需要的注意事项

    2017-12-21
  • Linux的发展史

       在早期电气化发展时代1946年诞生了计算机事物,早期的计算机体积巨大,只能适用于一个人操作,而且运行速度慢。但已经形成计算机的架构体系,为了尽可能的榨干计算机资源在计算机发展的二阶段,于是有当时著名实验室BELL ,GE,MIT共同研发了一款叫MULTCS操作系统,这也是最早的操作系统。   1946年一个没有完成的梦想,…

    Linux干货 2016-10-13
  • 如何使用openssl工具创建私有CA

    一、CA及证书 非对称加密是为了保证互联网中通讯信息安全使用的一种算法,密钥是成对出现(公钥和私钥),它的特点是发送方A使用接收方B的公钥加密数据,所有只有B拥有与之配对的私钥解密该数据,反之亦然。那么,A和B之间怎么交换得到对方的真实安全的公钥呢?此时就需要一个权威的机构来验证公钥的合法性,这个机构称之为CA(Certification Authority…

    2017-07-16
  • 用户组管理系列(二):权限设置

    1、权限简介    操作系统中每个文件都拥有特定的权限、所属用户和所属组。权限是操作系统用来限制资源访问的机制,在Linux中权限一般分为读(readable)、写(writable)和执行(excutable),分为三组。分别对应文件的属主(owner),属组(group)和其他用户(other),通过这样的机制来限制哪些用户、哪些组可…

    Linux干货 2016-08-05
  • linux学习第二天知识点-linux入门及使用帮助

    一 基础命令 1. #ifconfig     显示或配置网卡的命令,英文全称是network interfaces configuring。     配置网卡的IP地址语法例:ifconfig eth0 192.168.0.1 netmask 255.255.255.0 2.&…

    Linux干货 2016-07-26