阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 6.4下DNS+Squid+Nginx+MySQL搭建高可用Web服务器

122次阅读
没有评论

共计 13442 个字符,预计需要花费 34 分钟才能阅读完成。

一.Squid 是什么

Squid 是一种用来缓冲 Internet 数据的软件。它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求。也就是说,如果一个人想下载一 web 页面,他请求 Squid 为他取得这个页面。Squid 随之连接到远程服务器并向这个页面发出请求。然后,Squid 显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid 可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。当前的 Squid 可以处理 HTTP,FTP,GOPHER,SSL 和 WAIS 等协议。但它不能处理如 POP,NNTP,RealAudio 以及其它类型的东西。

squid 各种代理的定义

正向代理

a.标准的代理缓冲服务器

一个标准的代理缓冲服务被用于缓存静态的网页(例如:html 文件和图片文件等)到本地网络上的一台主机上(即代理服务器)。当被缓存的页面被第二次访问的时候,浏览器将直接从本地代理服务器那里获取请求数据而不再向原 web 站点请求数据。这样就节省了宝贵的网络带宽,而且提高了访问速度。但是,要想实现这种方式,必须在每一个内部主机的浏览器上明确指明代理服务器的 IP 地址和端口号。客户端上网时,每次都把请求送给代理服务器处理,代理服务器根据请求确定是否连接到远程 web 服务器获取数据。如果在本地缓冲区有目标文件,则直接将文件传给用户即可。如果没有的话则先取回文件,先在本地保存一份缓冲,然后将文件发给客户端浏览器。

b.透明代理缓冲服务器 (常用在局域网网关上安装,配合防火墙 reject 使用)

透明代理缓冲服务和标准代理服务器的功能完全相同。但是,代理操作对客户端的浏览器是透明的(即不需指明代理服务器的 IP 和端口)。透明代理服务器阻断网络通信,并且过滤出访问外部的 HTTP(80 端口)流量。如果客户端的请求在本地有缓冲则将缓冲的数据直接发给用户,如果在本地没有缓冲则向远程 web 服务器发出请求,其余操作和标准的代理服务器完全相同。对于 Linux 操作系统来说,透明代理使用 Iptables 或者 Ipchains 实现。因为不需要对浏览器作任何设置,所以,透明代理对于 ISP(Internet 服务器提供商)特别有用。

反向代理

a. 反向代理缓冲服务器

反向代理是和前两种代理完全不同的一种代理服务。使用它可以降低原始 WEB 服务器的负载。反向代理服务器承担了对原始 WEB 服务器的静态页面的请求,防止原始服务器过载。它位于本地 WEB 服务器和 Internet 之间,处理所有对 WEB 服务器的请求,组织了 WEB 服务器和 Internet 的直接通信。如果互联网用户请求的页面在代理服务器上有缓冲的话,代理服务器直接将缓冲内容发送给用户。如果没有缓冲则先向 WEB 服务器发出请求,取回数据,本地缓存后再发送给用户。这种方式通过降低了向 WEB 服务器的请求数从而降低了 WEB 服务器的负载。

二. 系统架构

1. 原理说明

通过 DNS 的轮询技术,将来自客户端的请求分发给其中一台 Squid 反向代理服务器处理,如果这台 Squid 缓存了用户的请求资源,则将请求的资源直接返回给用户,否则 Squid 将此次请求根据配置的规则发送给邻居 Squid 和后台的 WEB 服务器处理,这样既减轻后台 WEB 服务器的负载,又提高整个网站的性能和安全性。

CentOS 6.4 下 DNS+Squid+Nginx+MySQL 搭建高可用 Web 服务器

2. 主机分配:

DNS 服务器:启用两张网卡,连接两个网段

eth0:10.10.54.150

eth1:172.16.54.254(作为 172.16.54.0/24 网段的网关)

两台 squid 反向代理服务器

squid1:172.16.54.150

squid2:172.16.54.151

两台 web 服务器 (安装 Discuz_X3.0_SC_UTF8.zip)

web1:172.16.54.200

web2:172.16.54.201

三台 mysql 服务器 (一主两从)

master:172.16.54.203

slave1:172.16.54.204

slave2:172.16.54.205

三:首先进行内存优化

编辑 sysctl.conf 文件,添加以下内容

shell> vi /etc/sysctl.conf

net.ipv4.tcp_rmem = 4096 87380 4194304

net.ipv4.tcp_wmem = 4096 65536 4194304

net.core.wmem_default = 8388608

net.core.rmem_default = 8388608

net.core.rmem_max = 16777216

net.core.wmem_max = 16777216

net.core.netdev_max_backlog = 262144

net.core.somaxconn = 262144

net.ipv4.tcp_max_orphans = 3276800

net.ipv4.tcp_max_syn_backlog = 8192

net.ipv4.tcp_max_tw_buckets = 5000

net.ipv4.tcp_timestamps = 0

net.ipv4.tcp_synack_retries = 1

net.ipv4.tcp_syn_retries = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_mem = 786432 1048576 1572864

net.ipv4.tcp_fin_timeout = 30

net.ipv4.tcp_keepalive_time = 1200

net.ipv4.ip_local_port_range = 1024 65000

# 配置选项解释:

net.ipv4.tcp_rmem = 4096 87380 4194304:TCP 读 buffer, 可参考的优化值: 32768 436600  873200

net.ipv4.tcp_wmem = 4096 65536 4194304:TCP 写 buffer, 可参考的优化值: 8192 436600  873200

net.core.wmem_default:表示发送套接字缓冲区大小的缺省值(以字节为单位)

net.core.rmem_default:表示接收套接字缓冲区大小的缺省值(以字节为单位)

net.core.rmem_max:表示接收套接字缓冲区大小的最大值(以字节为单位)

net.core.wmem_max:表示发送套接字缓冲区大小的最大值(以字节为单位)

net.core.netdev_max_backlog =  262144:每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。

net.core.somaxconn =  262144:web 应用中 listen 函数的 backlog 默认会给我们内核参数的 net.core.somaxconn 限制到 128,而 nginx 定义的 NGX_LISTEN_BACKLOG 默认为 511,所以有必要调整这个值。

net.ipv4.tcp_max_orphans = 3276800:系统中最多有多少个 TCP 套接字不被关联到任何一个用户文件句柄上。

net.ipv4.tcp_max_syn_backlog =  8192:表示 SYN 队列的长度,默认为 1024,加大队列长度为 8192,可以容纳更多等待连接的网络连接数。

net.ipv4.tcp_max_tw_buckets =  5000:表示系统同时保持 TIME_WAIT 套接字的最大数量,如果超过这个数字,TIME_WAIT 套接字将立刻被清除并打印警告信息。减少它的最大数量,避免 Squid 服务器被大量的 TIME_WAIT 套接字拖死。

net.ipv4.tcp_timestamps =  0:时间戳可以避免序列号的卷绕。一个 1Gbps 的链路肯定会遇到以前用过的序列号,时间戳能够让内核接受这种“异常”的数据包,这里需要将其关掉。

net.ipv4.tcp_tw_recycle = 1:表示开启 TCP 连接中 TIME-WAIT sockets 的快速回收。

net.ipv4.tcp_tw_reuse = 1:表示开启重用,允许将 TIME-WAIT sockets 重新用于新的 TCP 连接。

net.ipv4.tcp_mem = 786432 1048576  1572864:同样有 3 个值,net.ipv4.tcp_mem[0]: 低于此值,TCP 没有内存压力;net.ipv4.tcp_mem[1]: 在此值下,进入内存压力阶段;net.ipv4.tcp_mem[2]: 高于此值,TCP 拒绝分配 socket。可根据物理内存大小进行调整,如果内存足够大的话,可适当往上调。建议 94500000  915000000 927000000。

net.ipv4.tcp_fin_timeout =  30:表示如果套接字由本端要求关闭,这个参数决定了它保持在 FIN-WAIT- 2 状态的时间。

net.ipv4.tcp_keepalive_time =  1200:表示当 keepalive 起用的时候,TCP 发送 keepalive 消息的频度。缺省是 2 小时,改为 20 分钟。

net.ipv4.ip_local_port_range = 1024  65000:表示用于向外连接的端口范围。缺省情况下很小:32768 到 61000,改为 1024 到 65000。

# 使配置立即生效:

/sbin/sysctl -p

Squid 的详细介绍 :请点这里
Squid 的下载地址 :请点这里

推荐阅读:

配置 Squid 代理 http 和 rsync http://www.linuxidc.com/Linux/2013-05/84642.htm

Squid:实现高速的 Web 访问 http://www.linuxidc.com/Linux/2013-04/83512.htm

CentOS 6.2 编译安装 Squid 配置反向代理服务器 http://www.linuxidc.com/Linux/2012-11/74529.htm

Squid 在企业网中的应用 http://www.linuxidc.com/Linux/2012-10/71818.htm

四. 配置 DNS 服务器,实现轮询

# 安装 DNS 服务器,并配置 named.conf

shell> vim /etc/named.conf

options {

        listen-on port 53 {any;};

        allow-query    {any;};

        recursion yes;

#rrset-order 表明对 bbs.CentOS.com 域中的 IN 记录使用轮询

        rrset-order {

                class IN typeA name “bbs.centos.com”order cyclic;

      };

};

zone “.”IN {

        typehint;

        file”named.ca”;

};

zone “centos.com”IN {

        typemaster;

        file”named.lij.com”;

};

zone “54.16.172.in-addr.arpa”IN {

        typemaster;

        file”named.172.16.54″;

};

# 配置正解域

shell> vim /var/named/named.centos.com

$TTL 600

@                      IN SOA    centos.com. ftp. (

                                        2011080404

                                        3H

                                        15M

                                        1W

                                        1D)

@                    IN NS    ceontos.com.

centos.com.            IN A      10.10.54.150

@                    IN MX 10  mail.ceontos.com.

mail.centos.com.        IN A      10.10.54.151

bbs.centos.com.        IN A      172.16.54.150

bbs.centos.com.        IN A      172.16.54.151

# 重启

shell> /etc/init.d/named restart

# 测试 DNS 轮询是否生效,通过两次 ping

shell> ping bbs.centos.com

PING bbs.centos.com (172.16.54.151) 56(84) bytes of data.

64 bytes from 172.16.54.151: icmp_seq=1 ttl=64 time=0.441 ms

# 再次 ping

shell> ping bbs.centos.com

PING bbs.centos.com (172.16.54.150) 56(84) bytes of data.

64 bytes from 172.16.54.150: icmp_seq=1 ttl=64 time=0.019 ms

# 上面可以看到两次 ping 的 IP 并不相同

注意:测试机的 DNS 服务器需要配置为 10.10.54.150 这台

3. 配置两台 squid 服务器

# 编译安装 squid

yum install gcc wget perl gcc-c++ make

cd /tmp

wget http://www.squid-cache.org/Versions/v3/3.1/squid-3.1.19.tar.gz

tar xzf squid-3.1.19.tar.gz

cd squid-3.1.19

./configure –prefix=/usr/local/squid –enable-gnuregex –disable-carp –enable-async-io=240 –with-pthreads –enable-storeio=ufs,aufs,diskd –disable-wccp –enable-icmp –enable-kill-parent-hack –enable-cachemgr-hostname=localhost –enable-default-err-language=Simplify_Chinese –with-maxfd=65535 –enable-poll –enable-linux-netfilter –enable-large-cache-files –disable-ident-lookups –enable-default-hostsfile=/etc/hosts –with-dl –with-large-files –enable-delay-pools –enable-snmp –disable-internal-dns –enable-underscore -enable-arp-acl

make && make install

# 创建 squid 缓存目录,和日志目录

groupadd squid

useradd -g squid -s /sbin/nologin squid

mkdir /squid/data -p

mkdir /squid/log

chown -R squid.squid /squid

# 编辑 squid 配置文件

# 用户和用户组

cache_effective_user squid

cache_effective_group squid

# 主机名

visible_hostname squid1.lij.com

# 配置 squid 为反向代理模式

http_port 172.16.54.150:80 accel vhost vport

# 配置 squid2 为其邻居,当 squid1 在其缓存中没有找到请求的资源时,通过 ICP 查询去其邻居中取得缓存

icp_port 3130

cache_peer 172.16.54.151 sibling 80 3130

# 配置 squid1 的两个父节点(web server),originserver 参数指明是源服务器, round-robin 参数指明 squid 通过轮询方式将请求分发到其中一台父节点;squid 同时会对这些父节点的健康状态进行检查,如果父节点 down 了,那么 squid 会从剩余的 origin 服务器中抓取数据

cache_peer 172.16.54.200 parent 80 0 originserver round-robin

cache_peer 172.16.54.201 parent 80 0 originserver round-robin

# 下面是一些访问控制、日志和缓存目录的设置

cache_mem 128 MB

maximum_object_size_in_memory 4096 KB

maximum_object_size 10240 KB

cache_dir aufs /squid/data 4000 16 512

coredump_dir /squid/data

# 日志路径

cache_access_log /squid/logs/access.log

cache_log /squid/logs/cache.log

cache_store_log /squid/logs/store.log

acl localnet src 10.10.54.0/24

http_access allow all

icp_access allow localnet

refresh_pattern ^ftp:          1440    20%    10080

refresh_pattern ^gopher:        1440    0%      1440

refresh_pattern -i (/cgi-bin/|\?) 0    0%      0

refresh_pattern .              0      20%    4320

注意:

1.squid2 上配置和 squid1 上配置完全一样,只需要修改相关 IP, 如下

visible_hostname squid2.lij.com

http_port 172.16.54.151:80 accel vhost vport

icp_port 3130

cache_peer 172.16.54.150 sibling 80 3130

2. 两台 squid 上都要添加 hosts 记录

vim /etc/hosts

172.16.54.200 squid1.lij.com

172.16.54.201 squid2.lij.com

四. 配置 nginx 服务器

user  apache apache;

worker_processes  2;

error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

pid        logs/nginx.pid;

events {

    worker_connections  1024;

}

http {

        include      mime.types;

        default_type  application/octet-stream;

        log_format  main  ‘$remote_addr – $remote_user [$time_local] “$request” ‘

                      ‘$status $body_bytes_sent “$http_referer” ‘

                      ‘”$http_user_agent” “$http_x_forwarded_for”‘;

        access_log  logs/access.log;

        sendfile        off;

        keepalive_timeout  65;

#      gzip  on;

  server {

            listen      80;

            server_name  bbs.centos.com;

            root /var/www/bbs/upload;

            charset utf-8;

            index index.php index.html;

            access_log  logs/bbs.access.log;

      location ~ \.php$ {

                fastcgi_pass  unix:/var/run/php-fpm.sock;

                fastcgi_index  index.php;

                fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;

                include        fastcgi_params;

                include fastcgi.conf;

            }

        location /server-status {

                stub_status on;

                allow all;

                access_log off;

            }

        }

五. 配置论坛数据库

1. 这个 web 架构为 clients–>DNS 轮询 –>squid 加速 –>web–>mysql 主从

2. 负载均衡除了使用 DNS 轮询之外,也可以使用 LVS+keepalieve 实现,两台 realserver 配置为 squid1 和 squid2

3. 这篇文章对于两台 web 之间的数据同步没有提及,但是实际环境中必须要保证数据同步

4. 在两台 server 上安装 Discuz_X3.0_SC_UTF8.zip 论坛工具,论坛数据库放在 master 主机上,两台 slave 实现数据同步。

Nginx 的详细介绍 :请点这里
Nginx 的下载地址 :请点这里

相关阅读

CentOS 6.2 实战部署 Nginx+MySQL+PHP http://www.linuxidc.com/Linux/2013-09/90020.htm

使用 Nginx 搭建 WEB 服务器 http://www.linuxidc.com/Linux/2013-09/89768.htm

搭建基于 Linux6.3+Nginx1.2+PHP5+MySQL5.5 的 Web 服务器全过程 http://www.linuxidc.com/Linux/2013-09/89692.htm

CentOS 6.3 下 Nginx 性能调优 http://www.linuxidc.com/Linux/2013-09/89656.htm

CentOS 6.3 下配置 Nginx 加载 ngx_pagespeed 模块 http://www.linuxidc.com/Linux/2013-09/89657.htm

CentOS 6.4 安装配置 Nginx+Pcre+php-fpm http://www.linuxidc.com/Linux/2013-08/88984.htm

Nginx 搭建视频点播服务器(仿真专业流媒体软件)http://www.linuxidc.com/Linux/2012-08/69151.htm

更多 CentOS 相关信息见 CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14

一.Squid 是什么

Squid 是一种用来缓冲 Internet 数据的软件。它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求。也就是说,如果一个人想下载一 web 页面,他请求 Squid 为他取得这个页面。Squid 随之连接到远程服务器并向这个页面发出请求。然后,Squid 显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid 可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。当前的 Squid 可以处理 HTTP,FTP,GOPHER,SSL 和 WAIS 等协议。但它不能处理如 POP,NNTP,RealAudio 以及其它类型的东西。

squid 各种代理的定义

正向代理

a.标准的代理缓冲服务器

一个标准的代理缓冲服务被用于缓存静态的网页(例如:html 文件和图片文件等)到本地网络上的一台主机上(即代理服务器)。当被缓存的页面被第二次访问的时候,浏览器将直接从本地代理服务器那里获取请求数据而不再向原 web 站点请求数据。这样就节省了宝贵的网络带宽,而且提高了访问速度。但是,要想实现这种方式,必须在每一个内部主机的浏览器上明确指明代理服务器的 IP 地址和端口号。客户端上网时,每次都把请求送给代理服务器处理,代理服务器根据请求确定是否连接到远程 web 服务器获取数据。如果在本地缓冲区有目标文件,则直接将文件传给用户即可。如果没有的话则先取回文件,先在本地保存一份缓冲,然后将文件发给客户端浏览器。

b.透明代理缓冲服务器 (常用在局域网网关上安装,配合防火墙 reject 使用)

透明代理缓冲服务和标准代理服务器的功能完全相同。但是,代理操作对客户端的浏览器是透明的(即不需指明代理服务器的 IP 和端口)。透明代理服务器阻断网络通信,并且过滤出访问外部的 HTTP(80 端口)流量。如果客户端的请求在本地有缓冲则将缓冲的数据直接发给用户,如果在本地没有缓冲则向远程 web 服务器发出请求,其余操作和标准的代理服务器完全相同。对于 Linux 操作系统来说,透明代理使用 Iptables 或者 Ipchains 实现。因为不需要对浏览器作任何设置,所以,透明代理对于 ISP(Internet 服务器提供商)特别有用。

反向代理

a. 反向代理缓冲服务器

反向代理是和前两种代理完全不同的一种代理服务。使用它可以降低原始 WEB 服务器的负载。反向代理服务器承担了对原始 WEB 服务器的静态页面的请求,防止原始服务器过载。它位于本地 WEB 服务器和 Internet 之间,处理所有对 WEB 服务器的请求,组织了 WEB 服务器和 Internet 的直接通信。如果互联网用户请求的页面在代理服务器上有缓冲的话,代理服务器直接将缓冲内容发送给用户。如果没有缓冲则先向 WEB 服务器发出请求,取回数据,本地缓存后再发送给用户。这种方式通过降低了向 WEB 服务器的请求数从而降低了 WEB 服务器的负载。

二. 系统架构

1. 原理说明

通过 DNS 的轮询技术,将来自客户端的请求分发给其中一台 Squid 反向代理服务器处理,如果这台 Squid 缓存了用户的请求资源,则将请求的资源直接返回给用户,否则 Squid 将此次请求根据配置的规则发送给邻居 Squid 和后台的 WEB 服务器处理,这样既减轻后台 WEB 服务器的负载,又提高整个网站的性能和安全性。

CentOS 6.4 下 DNS+Squid+Nginx+MySQL 搭建高可用 Web 服务器

2. 主机分配:

DNS 服务器:启用两张网卡,连接两个网段

eth0:10.10.54.150

eth1:172.16.54.254(作为 172.16.54.0/24 网段的网关)

两台 squid 反向代理服务器

squid1:172.16.54.150

squid2:172.16.54.151

两台 web 服务器 (安装 Discuz_X3.0_SC_UTF8.zip)

web1:172.16.54.200

web2:172.16.54.201

三台 mysql 服务器 (一主两从)

master:172.16.54.203

slave1:172.16.54.204

slave2:172.16.54.205

三:首先进行内存优化

编辑 sysctl.conf 文件,添加以下内容

shell> vi /etc/sysctl.conf

net.ipv4.tcp_rmem = 4096 87380 4194304

net.ipv4.tcp_wmem = 4096 65536 4194304

net.core.wmem_default = 8388608

net.core.rmem_default = 8388608

net.core.rmem_max = 16777216

net.core.wmem_max = 16777216

net.core.netdev_max_backlog = 262144

net.core.somaxconn = 262144

net.ipv4.tcp_max_orphans = 3276800

net.ipv4.tcp_max_syn_backlog = 8192

net.ipv4.tcp_max_tw_buckets = 5000

net.ipv4.tcp_timestamps = 0

net.ipv4.tcp_synack_retries = 1

net.ipv4.tcp_syn_retries = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_mem = 786432 1048576 1572864

net.ipv4.tcp_fin_timeout = 30

net.ipv4.tcp_keepalive_time = 1200

net.ipv4.ip_local_port_range = 1024 65000

# 配置选项解释:

net.ipv4.tcp_rmem = 4096 87380 4194304:TCP 读 buffer, 可参考的优化值: 32768 436600  873200

net.ipv4.tcp_wmem = 4096 65536 4194304:TCP 写 buffer, 可参考的优化值: 8192 436600  873200

net.core.wmem_default:表示发送套接字缓冲区大小的缺省值(以字节为单位)

net.core.rmem_default:表示接收套接字缓冲区大小的缺省值(以字节为单位)

net.core.rmem_max:表示接收套接字缓冲区大小的最大值(以字节为单位)

net.core.wmem_max:表示发送套接字缓冲区大小的最大值(以字节为单位)

net.core.netdev_max_backlog =  262144:每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。

net.core.somaxconn =  262144:web 应用中 listen 函数的 backlog 默认会给我们内核参数的 net.core.somaxconn 限制到 128,而 nginx 定义的 NGX_LISTEN_BACKLOG 默认为 511,所以有必要调整这个值。

net.ipv4.tcp_max_orphans = 3276800:系统中最多有多少个 TCP 套接字不被关联到任何一个用户文件句柄上。

net.ipv4.tcp_max_syn_backlog =  8192:表示 SYN 队列的长度,默认为 1024,加大队列长度为 8192,可以容纳更多等待连接的网络连接数。

net.ipv4.tcp_max_tw_buckets =  5000:表示系统同时保持 TIME_WAIT 套接字的最大数量,如果超过这个数字,TIME_WAIT 套接字将立刻被清除并打印警告信息。减少它的最大数量,避免 Squid 服务器被大量的 TIME_WAIT 套接字拖死。

net.ipv4.tcp_timestamps =  0:时间戳可以避免序列号的卷绕。一个 1Gbps 的链路肯定会遇到以前用过的序列号,时间戳能够让内核接受这种“异常”的数据包,这里需要将其关掉。

net.ipv4.tcp_tw_recycle = 1:表示开启 TCP 连接中 TIME-WAIT sockets 的快速回收。

net.ipv4.tcp_tw_reuse = 1:表示开启重用,允许将 TIME-WAIT sockets 重新用于新的 TCP 连接。

net.ipv4.tcp_mem = 786432 1048576  1572864:同样有 3 个值,net.ipv4.tcp_mem[0]: 低于此值,TCP 没有内存压力;net.ipv4.tcp_mem[1]: 在此值下,进入内存压力阶段;net.ipv4.tcp_mem[2]: 高于此值,TCP 拒绝分配 socket。可根据物理内存大小进行调整,如果内存足够大的话,可适当往上调。建议 94500000  915000000 927000000。

net.ipv4.tcp_fin_timeout =  30:表示如果套接字由本端要求关闭,这个参数决定了它保持在 FIN-WAIT- 2 状态的时间。

net.ipv4.tcp_keepalive_time =  1200:表示当 keepalive 起用的时候,TCP 发送 keepalive 消息的频度。缺省是 2 小时,改为 20 分钟。

net.ipv4.ip_local_port_range = 1024  65000:表示用于向外连接的端口范围。缺省情况下很小:32768 到 61000,改为 1024 到 65000。

# 使配置立即生效:

/sbin/sysctl -p

Squid 的详细介绍 :请点这里
Squid 的下载地址 :请点这里

推荐阅读:

配置 Squid 代理 http 和 rsync http://www.linuxidc.com/Linux/2013-05/84642.htm

Squid:实现高速的 Web 访问 http://www.linuxidc.com/Linux/2013-04/83512.htm

CentOS 6.2 编译安装 Squid 配置反向代理服务器 http://www.linuxidc.com/Linux/2012-11/74529.htm

Squid 在企业网中的应用 http://www.linuxidc.com/Linux/2012-10/71818.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计13442字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中