Nginx优化之长连接/https/负载均衡
关于keepalive
有时我们需要用到nginx的 反向代理 (比如:跨域),此时需要“长连接”!其注意事项有两点:
- 从client到nginx的连接是长连接
- 从nginx到server的连接时长连接
默认情况下,nginx已经开启了对client的keepalive支持,但一些场景下,仍然需要我们手动调整参数重写一下:
http{keepalive_timeout 超时值 响应header;keepalive_request 数量值;
}
代码中:
- 超时值——keepalive客户端连接在服务器端保持开启的超时值(默认75s),值为0时,将禁用keepalive连接;
- 响应header——(可选)在响应的header域中设置一个值
Keep-Alive:timeout=time
; - 数量值——设置一个keepalive连接上可以服务的请求的最大数量(当达到值时,连接被关闭(默认值100))
保持和server的长连接
默认nginx访问后端都是短连接(也就是“典型的HTTP1.0”),为了让nginx和后端server之间保持长连接,可以如下配置:
http{upstream BACKEND{server 192.168.0.1:8080 weight=1 max_false=2 fail_timeout=30s;server 192.168.0.2:8080 weight=1 max_false=2 fail_timeout=30s;keepalive 300;}server{listen 8080 default_server;server_name:"";location /{proxy_pass http://BACKENDproxy_set_header Host $Host;proxy_set_header x-forwarded-for $remote_addr;proxy_set_header X-Real-IP $remote_addr;add_header Cache-Control no-store;add_header Pragma no-cache;proxy_http_version 1.1; //很重要!proxy_set_header Connection "";}}
}
- (第17行)proxy_http_version 1.1; 最好写上,因为http长连接的支持是从1.1版本后才有的;
- upstream中的keepalive——此时不表示超时,也不是前面说的单次请求最大连接数(keepalive_request),而是设置upstream服务器的空闲keepalive连接的最大数量。
nginx官方上说:当这个数量被突破时,最近使用次数最少的链接将被关闭(译)
nginx配置HTTPS
server{listen 80 default_server;listen 443 ssl;server_name cjxnsb.cn;root /mxc/UCgzs;index 1.html 2.html 3.html;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_certificate /usr/local/nginx/conf/server.pem;ssl_certificate_key /usr/local/nginx/conf/server.key;ssl_session_cache shared:SSL:10m;ssl_session_timeout 10m;ssl_ciphers ALL:!kEDH!ADH:RC4+RSA:+HIGH:+EXP;ssl_prefer_server_ciphers on;...
}
第13行:ssl_ciphers ALL:!kEDH!ADH:RC4+RSA:+HIGH:+EXP;
是nginx的优化之一:删去效率低下的kEDH加密算法!
Nginx负载均衡
当一个域名指向多台web服务器,添加一台nginx负载均衡服务器,将客户端请求“平均”发送给每台web服务器,避免单台服务器因负载过高而其余服务器空闲而出现的损失
vi /etc/nginx/conf.d/test.conf
upstream test{ #有多个文件,此处配置多个(test——自定义名)ip_hash;server 192.168.0.1:80 weight=100;server 192.168.0.2:80 weight=50;
}
server{listen 80;server_name cjxnsb.cn;location /{proxy_pass http://test;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}
- upstream:负载均衡配置项
- ip_hash:将同一客户端的所有请求发送给同一服务器(如不发送给同一服务器,有可能出现客户端刚登陆网站,点击其他子页面又提示登陆)
- server:web服务器地址
- proxy_pass:引用upstream定义的名称(如上面代码中的“test”)
upstream配置多个,则下面location /
前面要添加对应数量的location ~ 配置名
内部写法和location / 里异曲同工
nginx -t #一般都要先写这个——验证nginx配置更新
nginx -s reload #重载
Nginx优化之长连接/https/负载均衡相关推荐
- 千亿流量拦截控制处理技术-Nginx(安装 命令 路由匹配 负载均衡 常用配置)
千亿流量拦截控制处理技术-Nginx Nginx使用与配置 1 什么是nginx 1.1 可大量并行处理 1.2 与 Apache 相比 1.2.1 Apache VS Nginx 1.2.2 常用w ...
- Nginx中保持长连接的配置
哎,老转载王了,原博客地址:https://www.cnblogs.com/kevingrace/p/9364404.html 在Nginx中,对于http1.0与http1.1是支持长连接的.htt ...
- Nginx总结(反向代理、负载均衡、动静分离)篇
一.Nginx简介 什么是Nginx Nginx ("engine x")是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,事实上ngimx,的并发能力确实在同 ...
- 在Linux上使用Nginx为Solr集群做负载均衡
在Linux上使用Nginx为Solr集群做负载均衡 在Linux上搭建solr集群时需要用到负载均衡,但测试环境下没有F5 Big-IP负载均衡交换机可以用,于是先后试了weblogic的proxy ...
- F5/LVS/Nginx/HAProxy硬软件级网络负载均衡介绍
F5/LVS/Nginx/HAProxy硬软件级网络负载均衡介绍 1 硬件级的负载均衡 常见的商用硬件负载均衡器:NetScaler.F5.Radware.Array 优点: 1)专业团队维护,能够直 ...
- 用Nginx搭建IIS集群实现负载均衡
长话短说,我们用Nginx来搭建一个简单的集群,实现Web应用的负载均衡,架构图如下: 两台Web服务器,一台静态资源服务器,因为是演示,我们以网站形式部署在本机IIS中 一台Nginx代理服务器,安 ...
- Centos6.2上做nginx和tomcat的集成及负载均衡(已实践)
Centos6.2上做nginx和tomcat的集成及负载均衡 ---------------------------------------------------------Jdk-------- ...
- nginx Win下实现简单的负载均衡(2)站点共享Session
快速目录: 一.nginx Win下实现简单的负载均衡(1)nginx搭建部署 二.nginx Win下实现简单的负载均衡(2)站点共享Session 三.nginx Win下实现简单的负载均衡(3) ...
- Nginx教程系列五:实现负载均衡配置
文章目录 1. 案例 1.1 环境准备 1.2 实现效果 1.3 修改Nginx配置文件 1.4 测试 2. 负载均衡策略对比 2.1 轮询 2.2 权重 2.3 iphash 2.4 fair 1. ...
最新文章
- ArcGIS问题:如何定义坐标系
- C#程序输出信息到调试窗口的几种方式
- box-sizing:border-box
- java自动生成类_自动生成优化的Java类专业知识
- SQLServer数据库增、删、改、查简单操作示例
- 设计模式之GOF23备忘录模式
- Linux内核那些事之连接跟踪
- 模拟软件-OLED及Solar cell的模拟软件(Absorption模块)-[Setfos]
- 计算机系统时microsoft账号是,电脑microsoft账户登不进去
- 前端福利!layui可视化布局
- 计算机丢失mscvr,教大家计算机丢失Msvcr100.dll的解决方法
- Java对文件进行加密解密操作
- elasticsearch查看版本号
- vue项目引入typescript(vue与ts混用)
- ct上的img表示什么_X线/CT/MR影像片子上的标识你是否都认识?
- 车载网络结构(车内)-基础概念
- Spring boot 整合Spring Security Jwt
- linux挂载img镜像文件,如何挂载.img格式的镜像
- C++数组去重与排序
- 如何对测试团队进行管理?我从5个方面总结了一下