Nginx

Nginx简介

    Nginx(”engine x”)是俄罗斯人Igor Sysoev(伊戈尔.塞索耶夫)编写的一款高性能的HTTP和反向代理服务器。Nginx能够选择高效的epoll、Kqueue、eventport作为网络I/O模型,在高连接并发的情况下,Nginx是Apache服务器不错的替代品,它能够支持高达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;

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

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

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

2、index:定义默认资源

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

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

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

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

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

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

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

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

11、基于IP访问控制的:allow、deny

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

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

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

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

相关推荐

  • 第三周小练习

    1. 列出当前系统上所有已经登陆的用户的用户名,注意,同一个用户登陆多次,则显示一次即可 who -u|grep -o "^[[:alnum:]]*\>"|uniq 2. 取出最后登陆到当前系统的用户信息 who|tail -n1 3. 取出当前系统上被用户当作其默认shell的最多的那个sh…

    Linux干货 2016-11-21
  • Centos不重启添加新硬盘

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

    Linux干货 2016-03-27
  • 描述LVS的工作原理

    一、LVS结构   LVS由前端的负载均衡器(Load Balancer,LB)和后端的真实服务器(Real Server,RS)群组成。RS间可通过局域网或广域网连接。LVS的这种结构对用户是透明的,用户只能看见一台作为LB的虚拟服务器(Virtual Server),而看不到提供服务的RS群。当用户的请求发往虚拟服务器,LB根据设定的包转发策略和负载均衡…

    Linux干货 2016-08-29
  • Linux中命令的分类,hash缓存表与别名

        命令的分类:     在Linnux中,平常工作用的是字符界面。Linux输入命令后,shell接收命令通过系统调用把命令送入内核中执行。    *shell中的可执行命令分为两类        1.内部命令:为shell自带命令,利用某种形式在开机后…

    Linux干货 2017-07-15
  • grep的基本用法详解

     grep是linux上常用的一个文本处理工具之一。它有着强大的文本处理能力,学会它,可以让工作更有效率。 一、初识grep   grep: Global search Regular Experssion and Print out line   从名字上也可以直观的了解到它是基于正则表达式进行全局搜索,并把结果打印到屏幕上来…

    系统运维 2015-05-25
  • 编程命名中的7+1个提示

    前几天Neo写过《编程中的命名设计那点事》,这里也有另外一篇和程序命名的文章,可以从另一个角度看看。 1.- 变量应该是尽可能的望文知意。千万不要使用教材中的命名方式。 好的变量: daysDateRange, flightNumber, carColor. 坏的变量: days, dRange, temp, data, aux… 在我们…

    Linux干货 2015-04-03