Nginx作为前端连接后端keep-alive问题解决

为了应付大量用户请求,我们的网站加入了Varnish作为中间Cache。上线后使用varnishstat查看client_conn比client_req高很多,导致varnish产生大量TIME_WAIT。开始以为是Nginx没有开启keep-alive的原因,开启后继续观察了一段时间效果不是很明显。通过varnishlog查看发现http 1.0的链接为Connection 为close。查阅nginx官方ngx_http_upstream_module模块文档,官方建议proxy_http_version指令应该设置为“1.1”,同时清空“Connection”头的值。

开启前后连接对比图

参考链接:http://nginx.org/cn/docs/http/ngx_http_upstream_module.html#keepalive

时间: 2024-11-10 13:20:18

Nginx作为前端连接后端keep-alive问题解决的相关文章

nginx做前端,后端web服务器无法获取真正客户机的ip,解决方法

由于,前端使用了nginx作为代理服务器,代理后端的web服务器和tomcat服务器,发现后端服务器的访问日志记录的客户端ip是nginx反代机器的ip,,所以,以下方法可以让后端服务器获取到真正的客户机ip. 首先在前端nginx服务器的server{  } 里添加: proxy_set_header        Host            $host; proxy_set_header        X-Real-IP       $remote_addr; proxy_set_hea

nginx做前端反代负载均衡,后端httpd+tomcat

实验内容:用nginx做前端反代负载均衡后端httpd+tomcat 实验环境:物理机win7,虚拟机centos7: node1:172.18.11.111 httpd+tomcat node2:172.18.11.112 httpd+tomcat node3:172.18.11.113 nginx反代负载均衡 说明:httpd有两种方式与tomcat通信: (1)httpd可使用http模块反代tomcat,此时tomcat使用http链接器: (2)httpd还可使用ajp模块反代tomc

通过nginx部署前端代码实现前后端分离

实现前后端分离,可以让前后端独立开发.独立部署.独立单测,双方通过JSON进行数据交互. 对于前端开发人员来说,不用每次调试都需要启动或配置Java/Tomcat运行环境:对于后端开发人员来说 ,也不用在需要往JSP页面注入数据. 通过nginx来部署前端代码,可以帮助前端实现以下基本需求: 1.请求转发,解决请求跨域的问题 server { listen       7777; location /{ root   /Users/xiaoyun/git/someproject/dist; }

Nginx反向代理与后端服务采用连接池参数分析,长连接减少TIME_WAIT

前面已经讲过,在使用locust直连后端服务器时,可以通过设置HTTP头部为keep-alive,并在客户端断开连接,减少服务器的连接压力.因为由客户端断开连接,客户端的连接会变为TIME_WAIT状态,从而有效的节省了服务器的资源. 但通常,我们的服务器并不是简单的一个服务器端程序,一般还会有cache服务器,反向代理服务器,负载均衡服务器等等很多的中间部分,而这些模块之间都是通过新的连接相连,如果频繁的新建断开他们之间的连接,不仅会导致服务器端出现大量TIME_WAIT连接,还会导致性能的下

nginx使用ngx_lua访问后端Thrift-Server实现和介绍

背景 随着openresty的出现,让nginx使用lua解决一些业务的能力大幅度提高,ngx_lua可以使用nginx自生的基于事件驱动的IO模型,和后端的存储,业务等系统实现非阻塞的连接交互. 如何使用ngx_lua连接后端的Thrift-Server呢? 基于这个需求,本人为ngx_lua做了一下增强. 增强后的业务架构图 前端使用http对外提供服务,将请求的数据调用ngx_lua逻辑,使用定义好的Thrift的IDL文件生成lua代码,调用Thrift的服务,实现业务逻辑. 开源实现g

对一个前端AngularJS,后端OData,ASP.NET Web API案例的理解

依然chsakell,他写了一篇前端AngularJS,后端OData,ASP.NET Web API的Demo,关于OData在ASP.NET Web API中的正删改查没有什么特别之处,但在前端调用API时,把各种调用使用$resouce封装在一个服务中的写法颇有借鉴意义. 文章:http://chsakell.com/2015/04/04/asp-net-web-api-feat-odata/源码:https://github.com/chsakell/odatawebapi 首先是领域模

前端和后端

舞台是展示自己最华丽的一面,那么,后台则是很多工作人员所运转. 一个大舞台,需要的是前端和后端,那么前端是什么,后端是什么? 我们抛开技术不说,举个例子吧! 比如一个大型的演唱会,如果没有一个好的歌手,没有好听的歌,不过光靠歌手还不行,还需要舞台,这个舞台需要谁来支撑呢?没错,就是后面的工作人员,没有他们,就没有这样顺利的演唱会. 如果前端是歌手,那么后端则是工作人员,这样就很好理解了,我们前端是干什么的.但是光靠展示和设计出漂亮的网页还不行,还需要和后端好好配合才能做好,所以这个博文会列举出后

Nginx 72万连接性能测试(一)

转自:http://my.oschina.net/chenzhuo/blog/150200?p=2#comments 根据系统内存64G估算单台tengine做反向代理最高支持72万连接.为了验证达到该连接数时系统稳定运行,进行压测,先验证nginx与client建立72万连接时性能(不转发). 关闭超线程,12核CPU对应12个nginx worker进程,每个进程worker_connections为60000,且关闭accept_mutex.前端LVS做FNAT模式转发,开synproxy

nginx反向代理到后端tomcat,并将IP地址发送到后端的配置

nginx反向代理到后端,并将IP地址发送到后端的tomcat上. 假设我们的网站叫demo.demo.com 前端Nginx配置如下: /usr/local/nginx/conf/nginx.conf 在http段加上下面4行:     proxy_set_header X-Forwarded-For $remote_addr;     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;     proxy_set_head