配置nginx的那些参数

一、首先来看下nginx的全局文件结构:

...              #全局块
events {         #events块
   ...
}
http      #http块
{
    ...   #http全局块
    server        #server块
    { 
        ...       #server全局块
        location [PATTERN]   #location块
        {
            ...
        }
        location [PATTERN] 
        {
            ...
        }
    }
    server
    {
      ...
    }
    ...     #http全局块
}

1、全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。

2、events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。

3、http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。

4、server块:配置虚拟主机的相关参数,一个http中可以有多个server。

5、location块:配置请求的路由,以及各种页面的处理情况。

二、下面是举例的一个参数配置:

user  root;  #配置用户或者组
worker_processes  8;  #允许生成的进程数,默认为1 这里可以和自己服务器的CPU核数保持一致

error_log  logs/error.log;  #制定日志路径,级别。 级别依次为:debug|info|notice|warn|error|crit|alert|emerg
pid  logs/nginx.pid; #指定nginx进程运行文件存放地址

worker_rlimit_nofile 65535;  #worker进程最大打开文件数
events {
   worker_connections  65535;  #最大连接数,默认为1024
}

http {
    include       mime.types;  #文件扩展名与文件类型映射表
    default_type  application/octet-stream;  #默认文件类型,默认为text/plain

    #access_log  logs/access.log  main;  #访问日志 能够帮助我们快速的定位问题,并且知道用户访问的状态,浏览器,Ip,接口地址等
    #access_log off;  #解开注释后 将取消打印服务日志    

    sendfile  on;  #允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。
    keepalive_timeout  65;  #连接超时时间,可以在http,server,location块。

    client_max_body_size 30M;  #设置客户端请求体的最大允许大小
    client_body_buffer_size 30M;  #设置读取客户端请求体的缓冲区大小

    server {
        listen       80;  #监听80端口
        server_name  localhost;  #服务器的主机名

        location / {
            autoindex on;
            root  /home/admin;  #根目录
            index  index.html;  #设置默认页
            proxy_set_header x-forwarded-for  $proxy_add_x_forwarded_for; 
            proxy_set_header Upgrade $http_upgrade; 
            proxy_set_header Connection "upgrade";  location设置了proxy_set_header,就不继承,但继承默认值,默认值优先级低于 location设置。
        }
}

三、说一下几个参数:

1.worker_processes  8;    #允许生成的进程数

这里可以和自己服务器的CPU核数保持一致。

2.worker_rlimit_nofile 65535;    #worker进程最大打开文件数

3.client_max_body_size 30M;    #设置客户端请求体的最大允许大小

默认为 1M,表示 客户端请求服务器最大允许大小,在“Content-Length”请求头中指定。

如果请求的正文数据大于client_max_body_size,HTTP协议会报错 413 Request Entity Too Large。就是说如果请求的正文大于client_max_body_size,一定是失败的,如果需要上传大文件,一定要修改该值。

4.client_body_buffer_size 30M;    #设置读取客户端请求体的缓冲区大小

Nginx分配给请求数据的Buffer大小,如果请求的数据小于client_body_buffer_size直接将数据先在内存中存储。如果请求的值大于client_body_buffer_size小于client_max_body_size,就会将数据先存储到临时文件中。如果追求效率,就设置 client_max_body_size client_body_buffer_size相同的值,这样就不会存储临时文件,直接存储在内存了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宋文轩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值