首页 > 其他 > 详细

nginx模块使用详解

时间:2019-05-15 10:32:53      阅读:212      评论:0      收藏:0      [点我收藏+]
nginx简介

Nginx是异步框架的网页服务器,也可以用作反向代理、负载平衡器和HTTP缓存

模块

核心模块:core module
标准模块:HTTP modules:Mail modules Stream modules:
其他模块:第三方模块

核心模块

一、必备配置:

1.定义工作进程使用user和group。 默认group,nginx会使用与user相同的组名。

Syntax: user user [group];
Default:    
user nobody nobody;
Context:    main

3.定义将存储主进程的进程ID的文件

Syntax: pid file;
Default:    
pid logs/nginx.pid;
Context:    main

3.包含另一个文件或与指定掩码匹配的文件到配置中

Syntax: include file | mask;
Default:    —
Context:    any

4.指明要装载的动态模块

Syntax: load_module file;
Default:    —
Context:    main
This directive appeared in version 1.9.11.

二、性能优化相关配置

1.定义工作进程的数量

Syntax: worker_processes number | auto;
Default:    
worker_processes 1;
Context:    main

2.绑定工作进程到指定的CPU

Syntax: worker_cpu_affinity cpumask ...;
worker_cpu_affinity auto [cpumask];
Default:    —
Context:    main

示例

0001:0号CPU
0010:1号CPU

worker_processes    4;
worker_cpu_affinity 0001 0010 0100 1000;

自动绑定的CPU

worker_processes auto;
worker_cpu_affinity auto;

3.定义工作进程的调度优先级,就像使用nice命令一样:负数表示更高的优先级。(-20~20)

Syntax: worker_priority number;
Default:    
worker_priority 0;
Context:    main

4.最大打开文件数。用于在不重新启动主进程的情况下增加限制。

Syntax: worker_rlimit_nofile number;
Default:    —
Context:    main

三、调试、定位问题

1.nginx是否应该成为守护进程

Syntax: daemon on | off;
Default:    
daemon on;
Context:    main

2.master、worker模型运行nginx

Syntax: master_process on | off;
Default:    
master_process on;
Context:    main

3.配置日志 第一个参数定义了存放日志的文件。第二个参数定义日志级别

Syntax: error_log file [level];
Default:    
error_log logs/error.log error;
Context:    main, http, mail, stream, server, location

HTTP模块

一、HTTP服务器提供配置

Syntax: http { ... }
Default:    —
Context:    main

二、设置虚拟服务器的配置

Syntax: server { ... }
Default:    —
Context:    http

1.定义读取客户端请求头部的超时。 返回错误408

Syntax: client_header_timeout time;
Default:    
client_header_timeout 60s;
Context:    http, server

2.定义读取客户端请求正文的超时。返回错误408

Syntax: client_body_timeout time;
Default:    
client_body_timeout 60s;
Context:    http, server, location

3.设置向客户端传输响应的超时。返回错误408

Syntax: send_timeout time;
Default:    
send_timeout 60s;
Context:    http, server, location

4.设置读取客户端请求标头的缓冲区大小。

Syntax: client_header_buffer_size size;
Default:    
client_header_buffer_size 1k;
Context:    http, server

5.设置用于读取大型客户端请求标头的缓冲区的最大数量和大小

Syntax: large_client_header_buffers number size;
Default:    
large_client_header_buffers 4 8k;
Context:    http, server

6.设置用于从磁盘读取响应的缓冲区的数量和大小

Syntax: output_buffers number size;
Default:    
output_buffers 2 32k;
Context:    http, server, location

7.客户端的数据将被推迟发送,直到nginx需要发送的数据至少有1460字节

Syntax: postpone_output size;
Default:    
postpone_output 1460;
Context:    http, server, location

三、示例

http {

    include       conf/mime.types;
    default_type  application/octet-stream;

    log_format main      ‘$remote_addr - $remote_user [$time_local] ‘
                         ‘"$request" $status $bytes_sent ‘
                         ‘"$http_referer" "$http_user_agent" ‘
                         ‘"$gzip_ratio"‘;

    log_format download  ‘$remote_addr - $remote_user [$time_local] ‘
                         ‘"$request" $status $bytes_sent ‘
                         ‘"$http_referer" "$http_user_agent" ‘
                         ‘"$http_range" "$sent_http_content_range"‘;

    client_header_timeout  3m;
    client_body_timeout    3m;
    send_timeout           3m;

    client_header_buffer_size    1k;
    large_client_header_buffers  4 4k;

    gzip on;
    gzip_min_length  1100;
    gzip_buffers     4 8k;
    gzip_types       text/plain;

    output_buffers   1 32k;
    postpone_output  1460;

    sendfile         on;
    tcp_nopush       on;
    tcp_nodelay      on;
    send_lowat       12000;

    keepalive_timeout  75 20;

    #lingering_time     30;
    #lingering_timeout  10;
    #reset_timedout_connection  on;

    server {
        listen        one.example.com;
        server_name   one.example.com  www.one.example.com;

        access_log   /var/log/nginx.access_log  main;

        location / {
            proxy_pass         http://127.0.0.1/;
            proxy_redirect     off;

            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            #proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;

            client_max_body_size       10m;
            client_body_buffer_size    128k;

            client_body_temp_path      /var/nginx/client_body_temp;

            proxy_connect_timeout      70;
            proxy_send_timeout         90;
            proxy_read_timeout         90;
            proxy_send_lowat           12000;

            proxy_buffer_size          4k;
            proxy_buffers              4 32k;
            proxy_busy_buffers_size    64k;
            proxy_temp_file_write_size 64k;

            proxy_temp_path            /var/nginx/proxy_temp;

            charset  koi8-r;
        }

nginx模块使用详解

原文:https://blog.51cto.com/14074807/2394356

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!