本优化适合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反向代理、优化的更多相关文章

  1. nginx反向代理配置及优化

    nginx反向代理配置及优化前言: 由于服务器apache抗不住目前的并发.加上前端squid配置后,问题依然无法解决.而页面程序大部分是动态.无法使用fastcgi来处理.因此想使用nginx做为反 ...

  2. nginx反向代理的配置优化

    作者:守住每一天 blog:liuyu.blog.51cto.combbs:bbs.linuxtone.orgmsn:liuyubj520#hotmail.comemail:liuyu105#gmai ...

  3. 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,放置 ...

  4. nginx反向代理+缓存开启+url重写+负载均衡(带健康探测)的部署记录

    在日常运维工作中,运维人员会时常使用到nginx的反向代理,负载均衡以及缓存等功能来优化web服务性能. 废话不多说,下面对测试环境下的nginx反向代理+缓存开启+url重写+负载均衡(带健康探测) ...

  5. Nginx反向代理+DNS轮询+IIS7.5 千万PV 百万IP 双线 网站架构案例

    原文地址:http://www.jb51.net/article/31844.htm Nginx  ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 ...

  6. Nginx 反向代理、负载均衡

    ## Nginx 反向代理. (一)简介 一.什么是代理服务器 客户机原本发送给服务器的请求,不会直接发送给服务器,而是先发送给代理服务器:经过代理服务器处理后转发给服务器:服务器数据处理后转回给代理 ...

  7. Nginx反向代理解决iframe跨域问题

    前言 这几天有个需求:做个表单页面,要求后台人员能自定义发布表单,用户来填写表单.我一想,这不麦克表单有现成的吗,拿来就用!发布表单后,可以选择使用iframe方式嵌入网站,一切顺利. 当时的网站是h ...

  8. Nginx 反向代理工作原理简介与配置详解

    Nginx反向代理工作原理简介与配置详解   by:授客  QQ:1033553122   测试环境 CentOS 6.5-x86_64 nginx-1.10.0 下载地址:http://nginx. ...

  9. nginx反向代理缓存服务器的构建

    一:代理服务可简单的分为正向代理和反向代理: 正向代理:用于代理内部网络对Internet的连接请求(如VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标Web服务器的HTTP请求先发送 ...

  10. 02 - nginx - 反向代理、限速

    一.Nginx反向代理 代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器. 代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务器的硬盘中, ...

随机推荐

  1. POJ2635The Embarrassed Cryptographer(大数取余+素数筛选+好题)

    题目链接 题意:K是由两个素数乘积,如果最小的素数小于L,输出BAD最小的素数,否则输出GOOD 分析 素数打表将 L 大点的素数打出来,一定要比L大,然后就开始枚举,只需K对 素数 取余 看看是否为 ...

  2. 怎样用命令行编译C#程序

    1. 把程序拷贝至记事本 2.另存为*cs格式 3.找到VS2015提供的命令提示 4.要把命令行指向程序所在的目录(可以有个小软件) 如果在其他的盘符,先敲D:,然后再cd 5.输入csc hell ...

  3. SVM松弛变量-记录毕业论文3

    上一篇博客讨论了高维映射和核函数,也通过例子说明了将特征向量映射到高维空间中可以使其线性可分.然而,很多情况下的高维映射并不能保证线性可分,这时就可以通过加入松弛变量放松约束条件.同样这次的记录仍然通 ...

  4. 日志分析 第七章 安装grafana

    grafana依赖mysql存储数据,首先需要安装mysql 安装mysql 解压 # groupadd mysql # useradd -s /sbin/nologin -g mysql mysql ...

  5. app中Webview实现下载表格

    <script type="text/javascript"> function getUrl(){ var close = confirm("请点击确定下载 ...

  6. ubuntu下vim输入中文和中文显示

    安装和配置VIM,参考   http://jingyan.baidu.com/album/046a7b3efd165bf9c27fa915.html?picindex=4 在home/你的用户名 这个 ...

  7. 第2章 两种调用JS的方法——在HTML中使用JavaScript

    一. <script>标记 第一种方法是把 <sript></script>直接放到head和script两个标记之间(title下面,</head>上 ...

  8. 集合 ArrayList

    /* * 功能:演示java集合的用法:ArrayList */ package com.jihe; //先引入一个包 import java.util.ArrayList; public class ...

  9. MongoDB 3.0.6 安装 增删改查

    下载 安装包MSI http://yunpan.cn/cmhHdTPkXZRM2  访问密码 9b6c 上边提供的是 MongoDB 3.0.6 64Bit 的安装包 安装 如果不想直接安装在C盘.. ...

  10. struts2文件上传提示信息国际化

    1.在src的目录下新建文件fileUpload.properties 如图: fileUpload.properties文件内容为(把英文提示自定义为中文提示) struts.messages.er ...