Nginx

Nginx简介

    Nginx(”engine x”)是俄罗斯人Igor Sysoev(伊戈尔.塞索耶夫)编写的一款高性能的HTTP和反向代理服务器。Nginx能够选择高效的epollKqueueeventport作为网络I/O模型,在高连接并发的情况下,NginxApache服务器不错的替代品,它能够支持高达5万个并发连接数的响应,而内存、CPU等系统资源消耗却非常低,运行非常稳定。

    Nginx已经在俄罗斯最大的门户网站Rambler Media 上运行了多年时间,同时俄罗斯超过20%的虚拟主机平台采用Nginx作为反向代理服务器。

    在国内也有多家互联网平台,如新浪博客、网易新闻、豆瓣等用作web服务器或反向代理服务器。

Nginx的安装

可从官方网站(www.nginx.org)下载源码编译或下载预编译好的rpm包。

Nginx的基本配置

Nginx的配置文件默认在/etc/nginx下,主配置文件为nginx.conf,其配置文件格式如下图:

Nginx

Nginx

Nginx

    从上图中可以看配置的结构由主配置段、event{}段、http{}段构成,而在http{}段中又由多个server{}段,在server{}段中又包含多个location{}段。因此不难看出一个server{}表示一台虚拟主机。而location的作用是实现从URI到文件系统的路径映射,而使用多个时,Nginx会根据用户请求的URI来检查定义的所有location,从而找出一个最佳匹配,而后应用其配置;那如何查找呢?其实在定义时可使用以下特殊符号来完成优先级的定义;

    =:对URI做精确匹配;

    ~:对URI做正则表达式模式匹配,区分字符大小写

    ~*:对URI做正则表达式模式匹配,不区分字符大小写

    ^~:对URI的左半部分做匹配检查,不区分字符大小写

    如果不带符号则匹配URI的所有URL

而它们是有优先级的。=的优先级最高,其次是^~,而~~*的优先级是相等的,最后是不带符号的;

除了上图中出现过的指令,另外还有其他的一些常用指令,下面来一一列举:

1alias:定义路径别名,文档映射的另一种机制;仅能用于location上下文中;

2index:定义默认资源

3try_files:按次序尝试文件是否存在,第一个存在的用于响应用户的请求;

4keepalive_requests:一次长连接上所允许请求的资源的最大数量默认为100

5send_timeout:向客户端改善大响应报文的超时时长;

6client_body_buffer_size:用于设置接收客户端请求报文body部分的缓冲区大小;默认为16k;超出此值时,其将被暂存到磁盘上由clien_body_temp_path指令所定义的位置;

7client_body_temp_path [level1 [level2 [level3]]]:设定用于存储客户端请求报文body部分的临时存储路径及子目录结构和数量;

8open_file_cache max=N [inactive=time]:开启Nginx的文件缓存功能

9open_file_cache_valid:缓存有效性的检查频率,默认为60S

10open_file_cache_min_uses:在open_file_cache指令的inactive参数指定的时长内,至少应该被命中多少次才可被归类为活动项;

11、基于IP访问控制的:allowdeny

12、基于用户访问控制的:auth_basicauth_basic_user_file

上面这些指令经常使用,而还有很多指令在这里没有列举出来,用到的时候可到官方网站了解(www.nginx.org)

原创文章,作者:人字拖,如若转载,请注明出处:http://www.178linux.com/74952

(0)
人字拖人字拖
上一篇 2017-05-07 19:44
下一篇 2017-05-07 21:34

相关推荐

  • LVS模型练习

    本次涉及到的练习:nat练习、dr练习、FWM机制练习、mysql集群练习、httpd的集群练习、httpd和mysql结合调度的练习 yum install ipvsadm nat练习     设置:     (1)centos7.2作为lvs调度,有两块网卡,(公网地址)其中…

    Linux干货 2016-10-30
  • bash编程初体验(二)

    bash编程初体验(二) read if case 概述 在本篇文章中,我们将介绍bash编程中有关if语句的简单用法,if语句的基本思路是判断给定的条件是否满足,即结果是真还是假,从而选择执行哪种操作。如此,如果条件为真,if会执行一种指令,如果条件为假,if会选择执行另一种指令,这种执行就是所谓的选择结构,它能够改变命令的基本顺序流结构,以选择流的形式运…

    Linux干货 2016-08-19
  • 网络管理

    7层结构。三次握手,四次挥手。

    2017-12-17
  • 马哥教育N22期第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 root@xuc-virtual-machine:/home/xuc# cp -r /etc/skel/ /home/tuser1 root@xuc-virtual-machine:/…

    Linux干货 2016-09-06
  • MySQL双主复制模型

    配置双主数据库实例 双方可以相互复制 为了不影响效果,两台虚拟机把刚才生成的数据文件都删除 rm -rf /var/lib/mysql/* 1、时间要同步 2、双方既要启动中继日志,也需要启动二进制日志 3、编写主的配置文件 双主复制时有一个最大的问题,自动增长字段会重叠。为了避免重叠,一个节点使用奇数,另一个节点使用偶数 这里表示的意思,从1增长,一次增长…

    Linux干货 2016-11-21
  • N26-第三周

    1、列出当前系统上所有已经登录的用户的用户名,注意;同一个用户登录多次,则只显示一次即可。[root@localhost ~]# whoroot     tty1         2017-03-03 19:28root     pts/0     &nbsp…

    Linux干货 2017-03-04