nginx反向代理、优化
本优化适合apache,nginx,squid多种等web应用,特殊的业务也可能需要略作调。
生产环境linux的内核优化
net.ipv4.tcp_fin_timeout =
net.ipv4.tcp_tw_reuse =
net.ipv4.tcp_tw_recycle =
net.ipv4.tcp_syncookies =
net.ipv4.tcp_keepalive_time =
net.ipv4.ip_local_port_range =
net.ipv4.tcp_max_syn_backlog =
net.ipv4.tcp_max_tw_bucklog =
net.ipv4.route.gc_timeout =
net.ipv4.tcp_syn_retries =
net.ipv4.tcp_synack_retries =
net.core.somaxconn =
net.core.netdev_max_backlog =
net.ipv4.tcp_max_orphans =
以下参数是对iptables防火墙的优化,防火墙不开会提示,可以忽略不理。
net.ipv4.ip_conntrack_max =
net.ipv4.netfilter.ip_conntrack_max =
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established =
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait =
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait =
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait =
将上面的内核参数值加入/etc/sysctl.conf文件中,然后执行如下命令使之生效:sysctl -p
下面是对sysctl.conf内核文件中的参数含义进行介绍:
net.ipv4.tcp_fin_timeout =
表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间,默认值是60秒。该参数对应系统路径为:/proc/sys/net/ipv4/tcp_fin_timeout 60
net.ipv4.tcp_tw_reuse =
表示开启重用。允许将TIME-WAIT sockets 重新用于新的TCP连接,默认值为0,
表示关闭。该参数对应系统路径为:/proc/sys/net/ipv4/tcp_tw_reuse 0
net.ipv4.tcp_tw_recycle =
表示开启TCP连接中TIME-WAIT sockets的快速回收。该参数对应系统路径为:/proc/sys/net/ipv4/tcp_tw_recycle 默认为0,表示关闭。
提示:reuse和recycle两个参数为了防止生产环境下web,squid等time_wait过设置的。
net.ipv4.tcp_syncookies =
表示开启SYN Cookies功能。当出现SYN等待队列溢出时,启用cookies来处理,防范少量SYN攻击,centos5系列默认值为1,表示开启,因此这个参数也可以不加;该参数对应系统路径为:/proc/sys/net/ipv4/tcp_syncookies 默认为1。
net.ipv4.tcp_keepalive_time =
表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为10分钟。该参数对应系统路径为:/proc/sys/net/ipv4/tcp_keepalive_time认为7200秒。
net.ipv4.ip_local_port_range =
选项用来设定允许系统打开的端口范围。即用于向外连接的端口范围。
该参数对应系统路径为:/proc/sys/net/ipv4/ip_local_port_range 32768 61000
net.ipv4.tcp_max_syn_backlog =
表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连的网络连接数。选项为服务器端用于记录那些尚未收到客户端确认信息的连接请求的最大值。
该参数对应系统路径为:/proc/sys/net/ipv4/tcp_max_syn_backlog
net.ipv4.tcp_max_tw_buckets =
表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认为180000,对于Apache、Nginx等服器来说可以调整低一点,如;改为5000-30000,不同业务的服务器也可以给大一点,比如lvs,squid。
上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于squid,效果却不大。
此项参数可以控制TIME_WAIT套接字的最大数量,避免squid服务器被大量的TIME_WAIT套接字拖死。该参数对应系统路径为:/proc/sys/net/ipv4/tcp_max_tw_buckets
net.ipv4.tcp_syn_retries
表示在内核放弃建立连接之前发送SYN包的数量。该参数对应系统路径为:/proc/sys/net/ipv4/tcp_syn_retries 5
net.ipv4.tcp_max_orphans
选项用于设定系统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄。如果超过这个数字,孤立连接将立即被复位并打印出警告信息。这个限制只是为了防止简单的Dos攻击。不能过分依靠这个限制甚至认为减小这个值,更多的况是为了增加这个值。该参数对应系统路径为:/proc/sys/net/ipv4/tcp_max_orphans 65536
net.core.somaxconn
选项默认值是128.这个参数用于调节系统同时发起的TCP连接数,在高并发的请中,默认的值可能会导致链接超时或者重传,因此,需要结合并发请求数来调节此值。该参数对应系统路径为:/proc/sys/net/core/somaxconn 128
net.core.netdev_max_backlog
选项表示当每个网络接口接受数据包的速率比内核处理这些包的速率快时,允许发送到队列的数据包的最大数目。该参数对应系统路径为:/proc/sys/net/core/netdev_max_backlog默认值1000。
nginx反向代理、优化的更多相关文章
- nginx反向代理配置及优化
nginx反向代理配置及优化前言: 由于服务器apache抗不住目前的并发.加上前端squid配置后,问题依然无法解决.而页面程序大部分是动态.无法使用fastcgi来处理.因此想使用nginx做为反 ...
- nginx反向代理的配置优化
作者:守住每一天 blog:liuyu.blog.51cto.combbs:bbs.linuxtone.orgmsn:liuyubj520#hotmail.comemail:liuyu105#gmai ...
- Nginx 反向代理、负载均衡、页面缓存、URL重写以及读写分离
1.环境准备 前端Nginx:10.160.65.44 后端WEB服务器两台:10.160.65.49/10.160.65.50 2.安装Nginx: 下载nginx-1.9.15.tar.gz,放置 ...
- nginx反向代理+缓存开启+url重写+负载均衡(带健康探测)的部署记录
在日常运维工作中,运维人员会时常使用到nginx的反向代理,负载均衡以及缓存等功能来优化web服务性能. 废话不多说,下面对测试环境下的nginx反向代理+缓存开启+url重写+负载均衡(带健康探测) ...
- Nginx反向代理+DNS轮询+IIS7.5 千万PV 百万IP 双线 网站架构案例
原文地址:http://www.jb51.net/article/31844.htm Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 ...
- Nginx 反向代理、负载均衡
## Nginx 反向代理. (一)简介 一.什么是代理服务器 客户机原本发送给服务器的请求,不会直接发送给服务器,而是先发送给代理服务器:经过代理服务器处理后转发给服务器:服务器数据处理后转回给代理 ...
- Nginx反向代理解决iframe跨域问题
前言 这几天有个需求:做个表单页面,要求后台人员能自定义发布表单,用户来填写表单.我一想,这不麦克表单有现成的吗,拿来就用!发布表单后,可以选择使用iframe方式嵌入网站,一切顺利. 当时的网站是h ...
- Nginx 反向代理工作原理简介与配置详解
Nginx反向代理工作原理简介与配置详解 by:授客 QQ:1033553122 测试环境 CentOS 6.5-x86_64 nginx-1.10.0 下载地址:http://nginx. ...
- nginx反向代理缓存服务器的构建
一:代理服务可简单的分为正向代理和反向代理: 正向代理:用于代理内部网络对Internet的连接请求(如VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标Web服务器的HTTP请求先发送 ...
- 02 - nginx - 反向代理、限速
一.Nginx反向代理 代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器. 代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务器的硬盘中, ...
随机推荐
- Alpha版本十天冲刺——Day 7
站立式会议 祝曹鑫杰和常松童鞋生日快乐!短短几天冲刺,就迎来了三位队员的生日,希望也给我们的Alpha版本带来好运,加油! 会议总结 队员 今天完成 遇到的问题 明天要做 感想 鲍亮 上传图片接口 无 ...
- CSS3的transition动画功能
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- re正则表达式16_managing complex regexes
Managing Complex Regexes Regular expressions are fine if the text pattern you need to match is simpl ...
- Java——布局管理器
在Swing中使用的所有布局管理器都可以实现LayoutManager接口,在Swing中主要使用的5种布局管理器:FlowLayout.BorderLayout.GridLayout.CardLay ...
- 安卓官方ViewPager与android.support.design.widget.TabLayout双向交互联动切换 。
该TabLayout的功用,简单的说,就是当用户在该TabLayout的选项卡子item中选择触摸时候,文字和下方的指示器横条滑动指示.android.support.design.widget.Ta ...
- Linux版MonoDevelop无法连接调试器的解决方案(Could not connet to the debugger)
安装了Linux版本的MonoDevelop之后,在运行程序的时候会提示Could not connnet to the debugger.的错误. 原因是新版本的Gnome Terminal不再接受 ...
- Unity multi_compile
http://docs.unity3d.com/Manual/SL-MultipleProgramVariants.html http://forum.unity3d.com/threads/tuto ...
- AutoMapper不用任何配置就可以从dynamic(动态)对象映射或映射到dynamic对象。
http://www.cnblogs.com/farb/p/4934476.html#pz
- OC- .h与.m
1.只有利用类名调用类方法的时候,不需要在类名后面写*.其他情况下,类名后面统一加上一个* Circle *c1 = [Circle new]; - (BOOL)isInteractWithOther ...
- 缺少索引导致的服务器和MYSQL故障。
故障现象: 网站访问缓慢. 数据库RDS: CPU满,连接数满,其他值都是空闲. apache服务器:CPU正常,IO正常,流量报警,内存爆满. 解决思路: 一.没遇到过此情况,一脸懵逼. 二.请教大 ...