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

相关推荐

  • N26-第二周

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。(盗图了,哈哈哈) 文件查看类命令:cat, tac, head, tail, more, less,touch    cat 查看文件内容   tac命令   反向查看文件内容  注:可对照上图 分屏查看命令:more  …

    Linux干货 2017-01-07
  • Linux系统启动流程简介

    centos系统启动流程 本篇仅仅讲解centos5和6 centos7并不适用 Linux系统的组成部分:内核+根文件系统 内核功能: 进程管理 内存管理 网络管理 驱动程序 文件系统 安全功能 有以下目录结构的文件系统可以被识别为根文件系统,但根文件系统本身不存在 rootfs:/bin/ /sbin /etc/ /sys/…

    Linux干货 2016-09-10
  • CentOS 6系统启动流程

    Linux系统的组成 内核+根文件系统 内核功能:     进程管理、内存管理、文件系统管理、网络管理、安全功能、驱动程序 运行中的系统环境可分为两层:内核空间、用户空间     用户空间:应用程序(进程或线程)     内核空间:内核代码…

    Linux干货 2016-09-15
  • 第二周作业

    新建 Microsoft Word 文档.docx

    Linux干货 2016-12-13
  • 脚本作业–函数练习

    1、编写服务脚本/root/bin/testsrv.sh,完成如下要求(1) 脚本可接受参数:start, stop, restart, status(2) 如果参数非此四者之一,提示使用格式后报错退出(3) 如是start:则创建/var/lock/subsys/SCRIPT_NAME, 并显示“启动成功”考虑:如果事先已经启动过一次,该如何处理?(4) …

    Linux干货 2016-08-24
  • Centos不重启添加新硬盘

     显示当前磁盘分区: [root@centos7 ~]# fdisk -l</p>< p>    Disk /dev/sda: 32.2 GB, 32212254720 bytes, 6…

    Linux干货 2016-03-27