• nginx 配置文件详解


    https://blog.51cto.com/825536458/1708051 nginx配置文件优化

    一 配置文件详解

    user                      admin admin;
    #定义nginx运行的用户和用户组
    worker_processes                        8;
    #nginx的运行进程数,建议设置等于cpu的总核心数,一般是8  /pr
    
    pid             /export/servers/nginx/run/nginx.pid;
    #进程pid的的文件
    worker_rlimit_nofile                    65535;
    #一个nginx进程应许打开的最大文件数。
    events 
    {
    use epoll;
    #参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型
    是Linux 2.6以上版本内核中的高性能网络I/O模型,如果跑在FreeBSD上面,就用kqueue模型。
    worker_connections 65535;
    #单个进程的最大连接数
    }
    http 
    #设定http服务器,利用它的反向代理功能提供负载均衡支持
    {
    include                         mime.types;
    #设定mime类型,类型由mime.types文件定义
    default_type                    application/octet-stream;
    #默认文件类型
    server_tokens                   on;
    #nginx在调用的时候,可以知道nginx的版本信息
    log_format main            '$remote_addr - $remote_user [$time_local] '
                        #记录客户端的ip,客户端用户名称,访问时间和时区
                          '"$request" $status $bytes_sent ' 
                    #用来记录请求的url与http协议,状态(200成功),发送客户端文件大小
                               '"$http_referer" "$http_user_agent" '
                #记录从哪个页面链接访问过来了,记录客户端浏览器的相关信息
                          '"$request_time $upstream_response_time $pipe" '
                #求情相应时间,upstream请求相应时间,
                               '"$gzip_ratio"';
                #设定日志格式
    charset                        utf-8;
    #默认的编码字符集
    server_names_hash_bucket_size   128;
    #服务器名字的hash表的大小
    client_header_buffer_size       32k;
    #上传文件大小限制
    large_client_header_buffers     4 32k;
    #设定请求缓存
    #nginx默认会用client_header_buffer_size这个buffer来读取header值,如果header过大,它会使用large_client_header_buffers来读取,如果设置过小HTTP头/Cookie过大 会报400 错误即:nginx 400 bad request。求行如果超过buffer,就会报HTTP 414错误(URI Too Long)nginx接受最长的HTTP头部大小必须比其中一个buffer大,否则就会报400的,HTTP错误(Bad Request)。
    client_max_body_size            300m;
    client_body_buffer_size         512k;
    #设定请求缓存
    sendfile                        on;
    #开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为on
    tcp_nopush                      on;
    #防止网络堵塞
    tcp_nodelay                     on;
    #防止网络堵塞
    keepalive_timeout               0;
    #长链接超时时间,单位是秒
    #fastcgi相关参数是为了改善网站性能;减少资源占用,提高访问速率
    fastcgi_intercept_errors        on;
    #指定是否传递4xx和5xx错误信息到客户端,或者允许nginx使用error_page处理错误信息
    
    #利用proxy模块给nginx加入缓存,提高http的相应请求效率
    proxy_connect_timeout           90;
    #后端服务器连接超时的时间,发起握手等候响应超时时间,
    proxy_read_timeout              180;
    #连接成功后,后端服务器处理请求的时间
    proxy_send_timeout              180;
    #在180秒内,后端服务器必须传完所有数据
    proxy_buffer_size               256k;
    #通常情况下,这部分被设置为第一部分应答的缓存区的大小,这个是应答头的大小
    proxy_buffers                   4 256k;
    #缓存区的大小
    proxy_busy_buffers_size         256k;
    #高负荷下缓冲大小(proxy_buffers*2)
    proxy_temp_file_write_size      256k;
    #设置在写入proxy_temp_path时数据的大小,预防一个工作进程在传递文件时阻塞太长
    proxy_intercept_errors          on;
    #设置客户端应许看到缓存的出错信息
    proxy_hide_header       X-Powered-By;
    #隐藏不必要的头,减少数据传输
        server_name_in_redirect         off;
    #让 nginx 在处理自己内部重定向时不默认使用  server_name 设置中的第一个域名;
    
    gzip                            on;
    #开启gzip压缩传输
    gzip_min_length                 100;
    #最小压缩文件大小
    gzip_buffers                    4 16k;
    #压缩缓冲区
    gzip_http_version               1.0;
    #压缩版本
    gzip_comp_level                 9;
    #压缩级别
    gzip_types        text/plain application/x-javascript text/css application/xml;
    #压缩类型
    gzip_vary                       on;
    error_page 400 401 402 403 404 405 408 410 412 413 414 415 500 501 502 503 506 = http://www.jd.com/error2.aspx;
    lua_package_path '/export/servers/nginx/var/lua/?/?.lua;/export/servers/nginx/var/lua/?.lua;;';
    #lua脚本
    include domains/*.upstream.conf;
    #nginx的upstream模块,负载均衡主要通过这个模块实现
    ####### server ##########
    server
    {
    listen                 80;
    #监听的端口
             server_name    shpls.wms5.jd.com;
    #第一个域名
    access_log             /export/servers/nginx/logs/access.log main;
    #访问日志
    error_log              /export/servers/nginx/logs/error.log warn;
    #错误日志,error_log 级别分为 debug, info, notice, warn, error, crit  默认为crit, 该级别在日志名后边定义格式如下:error_log  /your/path/error.log crit;  crit 记录的日志最少,而debug记录的日志最多。如果你的nginx遇到一些问题,比如502比较频繁出现,但是看默认的error_log并没有看到有意义的信息,那么就可以调一下错误日志的级别,当你调成error级别时,错误日志记录的内容会更加丰富。
    location / {
    #access_log             on;
    roothtml;
    indexindex.html index.htm;
    }
    location = /status {
    stub_statuson;
    access_logoff;
    }
    include domains/*.location.conf;
    location ^~ /winapp/ {
    root /export/App/app.wms5.jd.local;
    index ReleaseList.xml;
    }
    
    }
    }
    

    二 日志格式说明

    
     1.$remote_addr 与$http_x_forwarded_for 用以记录客户端的ip地址;
     2.$remote_user :用来记录客户端用户名称;
     3.$time_local : 用来记录访问时间与时区;
     4.$request : 用来记录请求的url与http协议;
     5.$status : 用来记录请求状态;成功是200,
     6.$body_bytes_s ent :记录发送给客户端文件主体内容大小;
     7.$http_referer :用来记录从那个页面链接访问过来的;
     8.$http_user_agent :记录客户端浏览器的相关信息;
    
    
  • 相关阅读:
    [PoC]某B2B网站的一个反射型XSS漏洞
    Python中的基本语句
    视频: 千重浪Linux系统调试技术培训 03-01_Basic-CPU-Register
    POJ 2955 Brackets (区间dp 括号匹配)
    LeetCode 146 LRU Cache
    Poj1734题解
    Python
    小胖说事29-----iOS中Navigation中左滑pop页面的三种方法
    深入理解javascript之原型
    android 弹幕评论效果
  • 原文地址:https://www.cnblogs.com/huningfei/p/12971788.html
Copyright © 2020-2023  润新知