Nginx.conf配置文件

nginx.conf配置文件相关参数:

user  nginx; #用户
worker_processes  auto; #根据cpu核数配置
worker_cpu_affinity auto; #CPU亲和
worker_rlimit_nofile 65535; #一般不需要这么大

error_log  /var/log/nginx/error.log warn; #错误日志
pid        /var/run/nginx.pid;
include /usr/share/nginx/modules/*.conf; #注意有些需要添加
events {
    use epoll;  #网络io模型
    worker_connections 65535 ;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    charset utf-8; # 统一使用utf-8字符集

    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  /var/log/nginx/access.log  main; #日志

    sendfile       on;
    tcp_nopush     on;

    keepalive_timeout  120; #请求完成之后还要保持连接时间
    tcp_nodelay on;

    client_body_buffer_size  50M; #客户端请求服务器最大允许大小
    proxy_connect_timeout    240; #设置代理连接超时时间
    proxy_read_timeout       240; #设置从代理服务器读取响应的超时时间
    proxy_send_timeout       240; #设置向代理服务器发送请求的超时时间
    proxy_buffer_size        50M; 
    #设置用于读取从代理服务器接收的响应的第一部分的缓冲区的大小。
    proxy_buffers            4 50M; 
    #设置用于从代理服务器读取响应的缓冲区的数量和大小,用于单个连接
    proxy_busy_buffers_size 50M;
    #设置当启用来自代理服务器的响应缓冲时,
    #限制可能忙于向响应客户端发送响应的缓冲区的总大小,而响应尚未完全读取。
    proxy_temp_file_write_size 50M;
    #设置当启用来自代理服务器的响应缓冲,
    #并且整个响应不适合proxy_buffer_size和proxy_buffers指令设置的缓冲区时,
    #响应的一部分可以保存到临时文件中。 该指令设置临时文件的最大大小, 
    #一次写入临时文件的数据大小由proxy_temp_file_write_size指令设置。
    
    gzip on; #开启gzip
    gzip_min_length  1k;# 
    #设置允许压缩的页面最小字节,建议大于1K
    gzip_buffers     4 16k;
    #以16k为单位,按照原始数据大小以16k为单位的4倍申请内存
    gzip_http_version 1.1;
    #识别http协议的版本,早期浏览器可能不支持gzip自解压,用户会看到乱码
    gzip_comp_level 2;
    #压缩机别,等级1-9 最小的压缩最快 但是消耗cpu
    gzip_types  text/plain application/x-javascript text/css application/xml;
    #匹配压缩类型
    gzip_vary on;
    #启用应答头"Vary: Accept-Encoding"
    
    log_format min #定义日志格式,收集日志信息
        '$remote_addr [$time_local]' 
        '$body_bytes_sent' 
        '$request_time' 
        '$status'  
        '"$request"'
        '"$http_referer"' 
        '"$http_x_forwarded_for"' 
        '$upstream_addr' 
        '$upstream_status' 
        '$upstream_response_time' 
        '$http_user_agent';
    log_format json #定义日志格式,收集日志信息
        '{"@timestamp":"$time_iso8601",' 
        '"slbip":"$remote_addr",' 
        '"clientip":"$http_x_forwarded_for",' 
        '"serverip":"$server_addr",' 
        '"size":$body_bytes_sent,' 
        '"responsetime":$request_time,' 
        '"host":"$host",' 
        '"method":"$request_method",' 
        '"requesturi":"$request_uri",' 
        '"url":"$uri",'  
        '"upstream_addr":"$upstream_addr",' 
        '"upstream_status":"$upstream_status",' 
        '"upstream_cache_status":"$upstream_cache_status",'
        '"upstream_response_time":"$upstream_response_time",' 
        '"appversion":"$HTTP_APP_VERSION",' 
        '"referer":"$http_referer",' 
        '"agent":"$http_user_agent",' 
        '"status":"$status",' 
        '"devicecode":"$HTTP_HA"}';
        
    proxy_temp_path    /data/cache/proxy_temp_dir;
    proxy_cache_path   /data/cache/proxy_cache_dir levels=1:2 keys_zone=cache_one:1024m inactive=1d max_size=10g;
    #添加缓存,proxy_temp_path和proxy_cache_path指定的路径必须在同一分区。
    #levels=1:2 缓存级别、1:2缓存两层目录
    #keys_zone=cache_one 配置keys_zone名称,可自定义,分配1024m大小。
    #max_size=10g 缓存最大10G,inactive=1d 超过1天没被访问将会剔除掉
    #use_temp_path=off 关闭生成temp的缓存,对应proxy_temp_path路径
    
    limit_conn_zone $binary_remote_addr zone=one:100m;
    #解释内容如下:
    #要限制连接,必须先有一个容器对连接进行计数,在http段加入如下代码:
    #"zone=" 给它一个名字,可以随便叫,这个名字要和server里的配置 limit_conn 一致
    #$binary_remote_addr = 用二进制来储存客户端的地址,1m 可以储存 32000 个并发会话。 
    #$binary_remote_addr是限制同一客户端ip地址;

    include /etc/nginx/conf.d/*.conf; 
}

proxy_params 代理配置,有时会缺少此文件。
vim /etc/nginx/proxy_params

proxy_redirect default;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#上面几行最重要
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_buffer_size 32k;
proxy_buffering on;
proxy_buffers 4 128k;
proxy_busy_buffers_size 256k;
proxy_max_temp_file_size 256k;
示例

其中日志格式min和json使用方法:

server{
        listen 80;
        server_name test.test.com;
        #access_log  logs/proxy_access.log min; #路径/etc/nginx/log/,也可以自定义日志保存路径
        access_log  logs/proxy_access_js.log json;
        location / {
                index index.html;
                root /data/code;
        }
}

其中nginx缓存使用方法:
在server加入以下代码
设置名称为cache_one,内存缓存空间大小为1G,
30天没有被访问的内容自动清除,硬盘缓存空间大小为30GB。

location / {
        proxy_cache cache_one; #cache_one对应ng配置的keys_zone
        proxy_cache_key $host$uri$is_args$args;
        proxy_set_header Host  $host;
        proxy_set_header X-Forwarded-For  $remote_addr;
        expires  30d;
}

其中limit_conn_zone使用方法:

server{
        listen 80;
        server_name test.test.com;
        root /data/code;
        index index.html;
        location / {
                index index.html;
        }
        location /download/ {
                limit_conn one 1;
                #限制每个IP只能发起1个连接(one 要跟limit_conn_zone 的变量对应)
                limit_rate 50k;
                #是对每个连接限速50k。这里是对连接限速,而不是对IP限速!
                #如果一个IP允许两个并发连接,那么这个IP就是限速limit_rate*2
        }
}
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,163评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,301评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,089评论 0 352
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,093评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,110评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,079评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,005评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,840评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,278评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,497评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,394评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,980评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,628评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,649评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,548评论 2 352

推荐阅读更多精彩内容