美文网首页
ES-nginx 长连接和权限配置

ES-nginx 长连接和权限配置

作者: YG_9013 | 来源:发表于2017-11-10 17:15 被阅读0次

长连接配置

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;
}

相关文章

  • ES-nginx 长连接和权限配置

    长连接配置 当你直接向es发送请求,你可以看到连接数是增加的: 通过nginx访问,结果如下: keepalive...

  • 微信平台配置

    微信配置连接 微信配置中心注意:如果你的微信没有登录和支付的权限需要先申请开通权限 1、点击权限申请按钮申请权限微...

  • Nginx篇05——http长连接和keeplive

    nginx中http模块使用http长连接的相关配置(主要是keepalive指令)和http长连接的原理解释。 ...

  • 阿里云mysql:ERROR 2003 (HY000): Can

    远程连接mysql失败原因: 用户权限配置: 查看配置文件排除bind-address、skip-networki...

  • 架构成长之路:MySQL基础架构和事务

    一、 数据库结构: 1.1 Server层: 连接器 权限验证 尽量使用长连接,但是长连接会消耗内存,可以定时清理...

  • MySQL基础架构和事务

    一、 数据库结构: 1.1 Server层: 连接器 权限验证 尽量使用长连接,但是长连接会消耗内存,可以定时清理...

  • Aliyun - ECS配置

    Aliyun - ECS配置 打开MySQL远程访问权限 1. 连接mysql数据库: mysql -uroot ...

  • MySQL用户权限验证

    长连接与用户权限 当客户端账号密码与服务器建立连接时,MySQL会读取该账号的所有权限并缓存,并在该连接持续期间使...

  • 大宇无限(4.24)

    项目中的登录和权限验证 Cookie和Seesion 爬虫 三次握手和四次挥手和原因 HTTP的长连接 Sprin...

  • Android蓝牙权限

    1. 蓝牙权限 蓝牙连接和通讯需要获取相关的蓝牙权限BLUETOOTH和BLUETOOTH_ADMIN。 蓝牙权限...

网友评论

      本文标题:ES-nginx 长连接和权限配置

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