nginx及其他负载均衡配置要点总结

nginx.conf详解

user    nobody  #  运行子进程的用户
workprocess    auto;  #  根据CPU个数

error_log        /data/wwwlogs/nginx_error.log;
pid                  /data/wwwlogs/nginx.pid

events  {
workconntion      65535;  #  nginx  配置优化  单进程读取文件数量
use    epoll;    #io非堵塞
}

http  {
    tcp_nopush  on;
    tcp_nodelay  on;
    #  优化网络连接


    keepalive_timeout  120;
    #  检查超时时间    内核参数优化    timeout  <  120;
    server_tokens  off;
    

    charset  utf-8;
    #  设置字符集
    #Gzip  Compression
    gzip  on;
    #  文件压缩,节省流量,提升网站访问速度
##  logformat
log_format  access  '$http_host  $remote_addr  -  $remote_user  [$time_local]  "$request"  '
                  '$status  $body_bytes_sent  "$http_referer"  '
                  '"$http_user_agent"  '
                  '$request_time  $upstream_response_time  '
                  '"$http_x_forwarded_for"';
          include  vhost/django.conf;

    include        vhost/*.conf

  }

  server  {
        listen  80;
        server_name  blog.liuwenqi.com;
        access_log  /data/wwwlogs/access_nginx.log  access;
        root  /data/wwwroot/myblog;  #  资源目录
        index  index.html  index.htm  index.php;  #  首页
        #error_page  404  /404.html;
        #error_page  502  /502.html;
        location  /nginx_status  {
            stub_status  on;
            access_log  off;
            allow  127.0.0.1;
            deny  all;
        }
        location  /static/  {
                alias  /data/wwwroot/myblog/static/;
        }
        location  /  {
                include  uwsgi_params;
                uwsgi_pass  127.0.0.1:8997;    #端口要和uwsgi里配置的一样
                uwsgi_param  UWSGI_SCRIPT  mysite.wsgi;    #wsgi.py所在的目录名+.wsgi
                uwsgi_param  UWSGI_CHDIR  /data/wwwroot/myblog/;  #项目路径

        }
        #location  ^~  /static/  {
        #        alias  /data/wwwroot/myblog/static;
        #}
        location  ~  .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$  {
            expires  1m;
            access_log  off;
        }
        location  ~  .*\.(js|css)?$  {
            expires  7d;
            access_log  off;
        }    #  nginx是通过时间去判断缓存过期
        #  .git    .svn    LICENSE      为了网站安全性
        location  ~  ^/(\.user.ini|\.ht|\.git|\.svn|\.project|LICENSE|README.md)  {
            deny  all;      #  禁止访问
        }

变量 说明 变量 说明
$args 这个变量等于请求行中的参数,同$query_string $remote_port 客户端的端口。
$content_length 请求头中的Content-length字段。 $remote_user 已经经过Auth Basic Module验证的用户名。
$content_type 请求头中的Content-Type字段。 $request_filename 当前请求的文件路径,由root或alias指令与URI请求生成。
$document_root 当前请求在root指令中指定的值。 $scheme HTTP方法(如http,https)。
$host 请求主机头字段,否则为服务器名称。 $server_protocol 请求使用的协议,通常是HTTP/1.0或HTTP/1.1。
$http_user_agent 客户端agent信息 $server_addr 服务器地址,在完成一次系统调用后可以确定这个值。
$http_cookie 客户端cookie信息 $server_name 服务器名称。
$limit_rate 这个变量可以限制连接速率。 $server_port 请求到达服务器的端口号。
$request_method 客户端请求的动作,通常为GET或POST。 $request_uri 包含请求参数的原始URI,不包含主机名,如:/foo/bar.php?arg=baz。
$remote_addr 客户端的IP地址。 $uri 不带请求参数的当前URI,$uri不包含主机名,如/foo/bar.html。
$document_uri 与$uri相同。

例如请求:http://localhost:3000/test1/test2/test.php

$host:localhost
$server_port:3000
$request_uri:/test1/test2/test.php
$document_uri:/test1/test2/test.php
$document_root:/var/www/html
$request_filename:/var/www/html/test1/test2/test.php

1)在浏览器中输入 "域名/nginx_status" 就会显示nginx上次启动以来工作状态的统计的结果。
如 下图:


image.png

2)返回各数据项说明:
Active connections: 当前nginx正在处理的活动连接数.
Server accepts handled requests request_time: nginx总共处理了13057 个连接,成功创建13057 握手(证明中间没有失败的),总共处理了11634 个请求,总共请求时间2230854。
Reading: nginx读取到客户端的Header信息数.
Writing: nginx返回给客户端的Header信息数.
Waiting: 开启keep-alive的情况下,这个值等于 active – (reading + writing),意思就是nginx已经处理完成,正在等候下一次请求指令的驻留连接。

所以,在访问效率高,请求很快被处理完毕的情况下,Waiting数比较多是正常的.
如果reading +writing数较多,则说明并发访问量非常大,正在处理过程中

logstash常用的nginx全局变量

nginx全局变量

$http_host始终等于HTTP_HOST请求标题。
$host等于$http_host,小写并且没有端口号(如果存在),除非HTTP_HOST不存在或是空值。
在这种情况下,$host等于server_name处理请求的服务器的指令值。
HTTP_HOST:从客户端请求获得的HTTP请求标头中获取
server_addr: request请求到达的server的ip
server_port: request到达的服务器的端口
server_name: 请求到达server的名
content_type: 等同于请求头部的"Content_Type"的值
remote_addr: 客户端ip
remote_port:客户端端口
remote_user:客户端user
args 此变量与请求行中的参数相等  等于query_string
request_filename: 当前请求的文件的路径
request_url: 含有参数的完整初始URL
url: 不带请求参数的当前URI,$uri不包含主机名,如/foo/bar.html。
request_method: request的请求方法,通常为GET,POST

timestamp

input {
  generator {
    count => 1
    message => "05:08:33.351UTC DEBUG c.emnify.esc.cmaprouter.MapSsnActor MapSsnActor(akka://esc) - create dialog request id=2767649"
  }
}
filter {
  grok {
    match => ["message", "%{DATA:timestamp} .*"]
  }
  date {
    match => ["timestamp", "HH:MM:ss.SSSZZZ"]
  }
}
output {
  stdout { codec => rubydebug }
}

输出为:

{
      "@version" => "1",
          "host" => "Joaos-MBP-5.lan",
      "sequence" => 0,
    "@timestamp" => 2017-08-01T05:00:33.351Z,
       "message" => "05:08:33.351UTC DEBUG c.emnify.esc.cmaprouter.MapSsnActor MapSsnActor(akka://esc) - create dialog request id=2767649",
     "timestamp" => "05:08:33.351UTC"
} 

OpenResty

OpenResty是和Lua结合的,适应nginx的版本
Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。

Tengine

官方文档
下载地址

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

推荐阅读更多精彩内容