专栏首页YG小书屋ES-nginx 长连接和权限配置

ES-nginx 长连接和权限配置

长连接配置

events {
    worker_connections  1024;
}

http {
   keepalive_timeout  120s 120s;
   keepalive_requests 10000;

  upstream elasticsearch {
    server 127.0.0.1:9200;

    keepalive 15;
  }

  server {
    listen 8080;

    location / {
      proxy_pass http://elasticsearch;
      proxy_http_version 1.1;
      proxy_set_header Connection "Keep-Alive";
      proxy_set_header Proxy-Connection "Keep-Alive";
    }

  }

}

当你直接向es发送请求,你可以看到连接数是增加的:

$ curl 'localhost:9200/_nodes/stats/http?pretty' | grep total_opened
# "total_opened" : 13
$ curl 'localhost:9200/_nodes/stats/http?pretty' | grep total_opened
# "total_opened" : 14
# ...

通过nginx访问,结果如下:

$ curl 'localhost:8080/_nodes/stats/http?pretty' | grep total_opened
# "total_opened" : 15
$ curl 'localhost:9200/_nodes/stats/http?pretty' | grep total_opened
# "total_opened" : 15
# ...
  • keepalive_timeout 超时时间设置,默认是75s。
  • keepalive_requests 一个keepalive连接可处理的请求数量。当请求数量达到时,连接被关闭。默认是100。
  • proxy_http_version HTTP协议中对长连接的支持是从1.1版本之后才有的,最好指定一下版本。
  • upstream中的keepalive 设置到upstream服务器的空闲keepalive连接的最大数量。如果空闲的keepalive连接大于该值,最近使用最少的连接将会被关闭。keepalive指令不会限制一个nginx worker进程到upstream服务器连接的总数量

出现大量TIME_WAIT的情况: 1. keepalive_requests设置比较小,高并发下超过此值后nginx会强制关闭和客户端保持的keepalive长连接;(主动关闭连接后导致nginx出现TIME_WAIT) 2. keepalive设置的比较小(空闲数太小),导致高并发下nginx会频繁出现连接数震荡(超过该值会关闭连接),不停的关闭、开启和后端server保持的keepalive长连接;

授权认证

events {
  worker_connections  1024;
}

http {

  upstream elasticsearch {
    server 127.0.0.1:9200;
  }

  server {
    listen 8080;

    auth_basic "Protected Elasticsearch";
    auth_basic_user_file passwords;

    location / {
      proxy_pass http://elasticsearch;
      proxy_redirect off;
    }
  }

}

通过openssl生成用户名密码:

printf "john:$(openssl passwd -crypt s3cr3t)n" > passwords

通过不通过密码访问:

$ curl -i localhost:8080
# HTTP/1.1 401 Unauthorized
# ...

通过密码访问:

$ curl -i john:s3cr3t@localhost:8080
# HTTP/1.1 200 OK
# ...

限制某些命令:

location / {
  if ($request_filename ~ _shutdown) {
    return 403;
    break;
  }

  proxy_pass http://elasticsearch;
  proxy_redirect off;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MR处理流程

    参考文章: 1、http://zheming.wang/blog/2015/05/19/3AFF5BE8-593C-4F76-A72A-6A40FB140D4...

    YG
  • MapReduce:N keys,N files(三)数据倾斜优化

    还是如何将N个keys写到N个文件的需求。 这次的问题是单个key太大,引起的单个reduce任务执行时间过长,导致整个MR运行时间过长。数据大部分的key在...

    YG
  • 深度学习之Logistic Regression

    YG
  • 架构 - iOS架构设计之模块间的解耦尝试

    工程大了以后,就需要分拆,不管是组件化还是插件化,还是什么,解耦是第一步,而且是各个维度的解耦。

    進无尽
  • 在ICML上展现类脑芯片,Abakus(鲸算科技)所pick的可不只这款硬科技!

    AI 科技评论按:7 月 9 日至 14 日,国际机器学习大会 ICML(International Conference on Machine Learnin...

    AI科技评论
  • python 应用thrift---- thrift的监控fb303 -

    2011-08-18 fb303 在thrift的源码包 contrib之中 * What does it provide? * A standard in...

    财主刀刀
  • 特殊类型结构--枚举

    枚举 介绍 在数学和计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。这两种类型经常(但不总是)重叠。 枚举在C...

    跋扈洋
  • 模型融合

    gbdt通过经验风险极小化来确定下一个弱分类器的参数。具体到损失函数本身的选择,如果选择平方损失函数,差值就是所说的残差 让损失函数沿着梯度方向下降,就是gb...

    pydata
  • 单例模式深入理解

    最近去平安系面试时,遇到了个人技术领域认定的一大偶像吴大师(Cat作者),他随口问了个单例的问题,要求基于Java技术栈,给出几种单例的方案,并给出单元测试代码...

    用户1216676
  • 加加减减的奥秘——从数学到魔术的思考(二)

    爱学习,勤思考;学数学,玩魔术。欢迎点击头部蓝字关注MatheMagician,这里有你要的奇迹!

    magic2728

扫码关注云+社区

领取腾讯云代金券