首页 > 系统 > Linux >

nginx系列-01-常用配置和优化选项

2016-10-06

nginx系列-01-常用配置和优化选项。说明 http指令常用配置 location指令一般语法匹配过程精确匹配最长前缀匹配 3 4 5 6 nginxconf常用优化选项。

说明 http指令常用配置 location指令一般语法匹配过程精确匹配最长前缀匹配 3 4 5 6 nginxconf常用优化选项

说明

默认情况下,nginx的配置文件位置为:/etc/nginx/目录
其中的nginx.conf为主配置文件

这篇文章先来看看主配置文件nginx.conf的配置

nginx.conf中的配置大概可以分为main、server、location这几个作用域或者叫“段”。
所以,可以将这配置文件nginx.conf的内容分为main段、server段和location段。

main段的配置一般来讲在main、server、location中都有效 server段的配置一般来讲在server和location中生效 location段的配置一般来讲只在location段中生效

http指令常用配置

# 包含了同一目录下的mime.types文件内容,MIME类型映射相关配置
include       mime.types;
# 默认的MIME类型
default_type  application/octet-stream;

#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
#                  '$status $body_bytes_sent "$http_referer" '
#                  '"$http_user_agent" "$http_x_forwarded_for"';

# 访问日志
#access_log  logs/access.log  main;
# 错误日志
#error_log logs/error.log crit;

# 内核复制模式,启用可达到最大IO效率
sendfile        on;
#tcp_nopush     on;

# 和HTTP/1.1长连接相对应的配置
#keepalive_timeout  0;
keepalive_timeout  65;



# 内容压缩相关配置
# 内容压缩,可提高网络IO效率
gzip  on;
# 内容长度大于gizp_min_length才启用压缩
gzip_min_length 1000;
# 压缩级别1~9,级别越高,压缩率越高,同时系统开销越大。
gzip_comp_level 4;
# 可用于压缩的MIME类型
gzip_types text/plain text/xml text/css application/json application/x-javascript;   



# 静态文件缓存的相关配置
# 最大缓存数量
open_file_cache max=655350 inactive=20s;
# 验证缓存有效期时间间隔
open_file_cache_valid 30s;
# 有效期内文件最少使用次数
open_file_cache_min_uses 2;

location指令

一般情况下一个请求到达后对其对应的url,nginx会将它解析到某一个location来处理。这个解析的过程实际上根据location的配置基本可以分为字符串匹配和正则表达式匹配这2种。

一般语法

location [ = | ~ | ~* | ^~ ] uri { ... }
location @name { ... }
=:精确匹配 ~:正则匹配,区分大小写 ~*:正则匹配,不区分大小写 ^~:关闭正则查找功能

可以大致分为两类,普通匹配和正则匹配。

匹配过程

1.精确匹配

以=开头的location

例如

location =/test1 {...}

此时只是匹配URI部分为/test1的URL

xxx.com/test1 # 匹配
xxx.com/test1.jsp # 不匹配

2.最长前缀匹配

例如

location /test/ {}
location /test/1/ {...}

3

在2中匹配到后不会立即结束,而是将结果暂存。继续进行正则匹配。

4

如果在正则匹配找到第一个匹配项后,就以第一个为结果。

正则匹配是受定义的先后顺序影响的。但是普通匹配不会受到定义先后顺序的影响。

5

如果4没有匹配到结果就返回在3中暂存的结果。

6

都没匹配到,就是404了。

nginx.conf常用优化选项

# 用户
#user  nobody;

# worker进程数
# 通常应该小于等于CPU核心的数目
worker_processes  1;

# 错误日志路径
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

# pid文件路径
# 默认为/var/run/nginx/nginx.pid
#pid        logs/nginx.pid;

# 每进程最大可用文件描述符数,文件描述符用完会拒绝新的连接产生502类错误
worker_rlimit_nofile 655350;

# 事件模型相关的配置
events {
    # 每进程最大的同时连接数
    # 服务器最大连接数 maxConnections = worker_connections * worker_processes

    # 当今浏览器一般会同时打开两个连接到服务器,
    # 所以,做静态服务器时,最大客户端数 maxClient = maxConnections / 2

    # 做反向代理时 maxClient =  maxConnections / 4
    worker_connections  1024;

    # 指定网络模型 epoll或者kquene
    use epoll;
}


# http相关配置
http {
    # 包含了同一目录下的mime.types文件内容,MIME类型映射相关配置
    include       mime.types;
    # 默认的MIME类型
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    # 访问日志
    #access_log  logs/access.log  main;
    # 错误日志
    #error_log logs/error.log crit;

    # 内核复制模式,启用可达到最大IO效率
    sendfile        on;
    #tcp_nopush     on;

    # 和HTTP/1.1长连接相对应的配置
    #keepalive_timeout  0;
    keepalive_timeout  65;



    # 内容压缩相关配置
    # 内容压缩,可提高网络IO效率
    gzip  on;
    # 内容长度大于gizp_min_length才启用压缩
    gzip_min_length 1000;
    # 压缩级别1~9,级别越高,压缩率越高,同时系统开销越大。
    gzip_comp_level 4;
    # 可用于压缩的MIME类型
    gzip_types text/plain text/xml text/css application/json application/x-javascript;   



    # 静态文件缓存的相关配置
    # 最大缓存数量
    open_file_cache max=655350 inactive=20s;
    # 验证缓存有效期时间间隔
    open_file_cache_valid 30s;
    # 有效期内文件最少使用次数
    open_file_cache_min_uses 2;





    # server表示一个虚拟主机,可以配置多个虚拟主机
    server {
        # 监听的端口
        listen       80;
        # 匹配的域名
        server_name  localhost;

        # 字符集设置
        #charset utf-8;

        # 访问日志文件路径
        #access_log  logs/host.access.log  main;

        location / {
            # 根目录
            root   html;
            # 默认主页
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

}
相关文章
最新文章
热点推荐