美文网首页
Nginx配置文件

Nginx配置文件

作者: greedycr7 | 来源:发表于2020-10-13 14:20 被阅读0次

1.配置文件结构

从整体结构上看,Nginx的配置文件主要由main、events、http、server、location五个模块组成。其中,server块嵌套在http块内,location块嵌套在server块内,对于嵌套块中的指令,其执行顺序为从外至内。

main
events {...}
http {
    server {
        location {...}
    }
}
模块 说明
main 用来配置Nginx工作进程所属的用户和用户组、工作进程数量、错误日志位置与级别、pid位置、工作进程的优先级等
events 用来配置Nginx的工作模式和并发量
http 用来配置Nginx处理http请求
server 用来配置Nginx中的虚拟主机
location 用来做模式匹配,可以根据用户请求的URI来执行不同的操作

1.1 main模块

指令详解:
# 工作进程所属用户
user  www-data;
# 工作进程数量,一般为CPU核数或者CPU核数的2倍
worker_processes  4;
# 主进程pid的存储位置
pid  /run/nginx.pid;

1.2 events模块

指令详解:
events {
    # 设置事件模型,epoll是多路复用中的一种方式,仅用于Linux2.6以上的内核
    use  epoll;
    # 单个工作进程的最大并发连接数,与服务器内存大小有关。
    worker_connections  1024;
    # 该配置项使得工作进程在获得新连接通知时,立即接受所有连接,放入监听队列
    multi_accept on;
}

1.3 http模块

http模块可以包含多个server模块,server模块又可以包含多个location模块!除了server模块和location模块外,还包含http全局块,用来配置Nginx日志、超时控制、反向代理等。

http全局块指令详解:
http {
    # mime.types文件是MIME文件类型和文件扩展名的映射。在Nginx返回的响应报文中,
    # 通过Content-type字段告知浏览器返回的文件类型,而浏览器就可以调用相应的应用
    # 程序为用户展示数据。
    include  mime.types;
    # Nginx默认返回的文件类型
    default_type  application/octet-stream;
    # 开启高效的文件传输模式(暂时还不理解这个配置)
    sendfile on;
    
    #+++++++++#
    #+日志配置+#
    #+++++++++#
    # 设定日志格式
    log_format  main
    '[$time_local] $remote_addr - $remote_user '
    '"$request" $request_length $request_time $status $body_bytes_sent '
    '"$http_referer" "$http_user_agent"';
    # 设置Nginx访问日志
    access_log  /data/nginx/logs/nginx_access.log  main;
    # 设置Nginx错误日志
    error_log  /data/nginx/logs/nginx_error.log;

    #+++++++++#
    #+超时控制+#
    #+++++++++#
    # 设置长连接的保持时间,相当于保活定时器,Nginx默认为75s,一般可设为60s,
    # 若设为0,则禁止长连接。
    keepalived_timeout  60;
    # 客户端与服务端建立连接后,客户端发送完整的请求头的超时时间,会受请求头长度和
    # 网络状况的影响。Nginx默认为60s,若指定时间内,客户端未发送完请求头,则Nginx
    # 返回408错误,即Request Time Out 。
    client_header_timeout  10;
    # 客户端与服务端建立连接后,客户端发送请求体的超时时间,会受请求体长度和网络状况
    # 的影响,在文件上传服务中,可能需要将此参数的值调大。Nginx默认为60s,若指定时间
    # 内,客户端未发送完请求体,则Nginx返回408错误。
    client_body_timeout  20;

    #+++++++++++++++++++++#
    #+请求头、请求体大小限制+#
    #+++++++++++++++++++++#
    # client_header_buffer_size指令用来分配一个buffer来容纳客户端的请求行和请求头,默认
    # 为1k;large_client_header_buffers 指令用来规定容纳客户端请求行和请求头的最大buffer
    # 数量和大小,默认最大数量为4个,大小为4k。
    # Nginx首先根据client_header_buffer_size配置的值来分配buffer,如果buffer过小,那么再
    # 次根据large_client_header_buffers 配置的值来分配large_buffer,如果large_buffer还是过
    # 小,则返回414错误(Request-URI Too Large)或者400错误(Bad Request)。
    client_header_buffer_size  1k;
    large_client_header_buffers  4 4k;
    # client_body_buffer_size指令用来配置请求体缓冲区的大小,默认为32k;
    # client_max_body_size指令用来配置请求体缓冲区的最大值,默认为1m;对于文件上传服
    # 务器来说,client_max_body_size的配置十分重要。
    client_body_buffer_size 32k;
    client_max_body_size 1m;

    #+++++++++#
    #+Gzip压缩+#
    #+++++++++#
    # Gzip是页面压缩技术,其作用是对服务端返回的页面进行压缩,以减小页面的体积,提高
    # 浏览器对页面的加载速率。一般情况下,对于js、css、jpg、jepg、png、gif这样的静
    # 态文件需要开启Gzip压缩技术。
    # 开启gzip压缩
    gzip on;
    # 设置允许压缩的页面的最小字节数,默认为1k;页面大小可以从响应头的Content-Length
    # 中获取。
    gzip_min_length  1k;
    # 配置压缩页面的缓冲区数量以及单个缓冲区的大小,默认为内存的一个页的大小。
    gzip_buffers 4 4k;
    # 允许Gzip压缩的文件类型
    gzip_types text/plain application/javascript text/css image/jpeg image/png image/gif;
    # 压缩级别,取值范围[1-9],默认为1,一般设为4或4;其值越大,压缩率越大,但是
    # 消耗的CPU时间越长。
    gzip_comp_level  4;
    # 指定允许的HTTP版本号,默认为1.1
     gzip_http_version 1.1;
}

日志格式参数说明:

参数 说明 示例
$time_local 本地时间和时区 18/Jul/2012:17:00:01 +0800
$remote_addr 客户端IP地址 211.71.72.69
$remote_user 客户端名称 -
$request 请求方式、请求的URI、HTTP协议版本 "GET /article-10000.html HTTP/1.1"
$request_length 请求的长度,包括行、头、体
$request_time 请求处理时间,单位s,指从读取客户端第一个字节开始,直到将最后一个字节内容返回给客户端
$status 服务端返回的状态码 200
$body_bytes_sent 服务端返回的内容大小,不包括响应行、响应头,单位字节 1547
$http_referer URL跳转来源 https://www.baidu.com/
$http_user_agent 客户端浏览器信息 "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; GTB7.0; .NET4.0C;"

相关文章

  • 第二讲 Nginx模块详解

    本章要点 Nginx 配置文件结构 各个模块的详解 2.1 Nginx配置文件结构 Nginx的配置文件nginx...

  • Nginx配置文件详解

    Nginx配置文件nginx.conf详解 nginx.conf nginx技术一--配置文件nginx.conf...

  • 应用程序常用命令

    nginx: nginx启动:nginx -c nginx配置文件地址检查配置文件是否正确:nginx -t重启n...

  • nginx(五)nginx cmd

    nginx cmd 1、启动nginx start nginx 2、修改配置文件并生效 测试nginx配置文件是否...

  • Nginx配置文件nginx.conf详解和nginx的变量规则

    Nginx配置文件nginx.conf详解 Nginx 总的 配置文件 位置 /usr/local/nginx/c...

  • Nginx使用

    Nginx [toc] nginx命令 参数 Nginx启动 通过指定配置文件启动 配置文件语法检查 Nginx配...

  • nginx配置文件

    nginx配置文件nginx配置文件详解一、nginx配置文件 启动子进程程序默认用户 user nobody;...

  • Nginx 打印body体内容

    Nginx 打印body体内容,修改nginx配置文件nginx.conf 重新加载配置文件 nginx body...

  • nginx(二)

    在修改配置文件后,检查 nginx 配置文件语法是否正确:nginx -t 重新启动 nginx: nginx -...

  • Nginx yum安装目录

    日志切割配置文件/etc/logrotate.d/nginx主要配置文件/etc/nginx/etc/nginx/...

网友评论

      本文标题:Nginx配置文件

      本文链接:https://www.haomeiwen.com/subject/pbhknftx.html