Nginx

2016/1/6 posted in  Ngnix

Nginx的特点:

  • 处理响应请求很快:在正常的情况下,单次请求会得到更快的响应
  • 高并发连接:Nginx支持的并发连接上限取决于你的内存,10万远未封顶
  • 低的内存消耗
  • 具有很高的可靠性
  • 高扩展性:Nginx的设计极具扩展性,它完全是由多个不同功能、不同层次、不同类型且耦合度极低的模块组成
  • 热部署:master管理进程与worker工作进程的分离设计,使得Nginx具有热部署的功能

nginx.conf是主配置文件,默认配置如下图:

worker_process # 表示工作进程的数量,一般设置为CPU的核数

worker_connections # 表示每个工作进程的最大连接数

server{} # 块定义了虚拟主机

    listen # 监听端口
    server_name # 监听域名
    location {} # 是用来为匹配的URI进行配置,URI即语法中的“/uri/”
    location /{} # 匹配任何查询,因为所有请求都以/开头

        root        # 指定对应uri的资源查找路径,这里html为相对路径,完整路径为 /path_to_nginx/html/

        index       # 指定首页index文件的名称,可以配置多个,以空格分开。如有多
                # 个,按配置顺序查找。

location匹配规则

=       开头表示精确匹配
^~          开头表示uri以某个常规字符串开头。Nginx不对url做编码,因此请求为`/static/20%/aa`,可以被规则`^~ /static/ /aa`匹配到
~           开头表示区分大小写的正则匹配
~*          开头表示不区分大小写的正则匹配
!~和!~*  分别为区分大小写不匹配及不区分大小写不匹配的正则
/           通用匹配,任何请求都会匹配到

Nginx静态文件服务

http {
    # 这个将为打开文件指定缓存,默认是没有启用的,max 指定缓存数量,
    # 建议和打开文件数一致,inactive 是指经过多长时间文件没被请求后删除缓存。
    open_file_cache max=204800 inactive=20s;

    # open_file_cache 指令中的inactive 参数时间内文件的最少使用次数,
    # 如果超过这个数字,文件描述符一直是在缓存中打开的,如上例,如果有一个
    # 文件在inactive 时间内一次没被使用,它将被移除。
    open_file_cache_min_uses 1;

    # 这个是指多长时间检查一次缓存的有效信息
    open_file_cache_valid 30s;

    # 默认情况下,Nginx的gzip压缩是关闭的, gzip压缩功能就是可以让你节省不
    # 少带宽,但是会增加服务器CPU的开销哦,Nginx默认只对text/html进行压缩 ,
    # 如果要对html之外的内容进行压缩传输,我们需要手动来设置。
    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_types text/plain application/x-javascript text/css application/xml;

    server {
            listen       80;
            server_name www.test.com;
            charset utf-8;
            root   /data/www.test.com;
            index  index.html index.htm;
           }
}