人一台web服务器,日流量约10万,上面有好几个虚拟主机,近日装上Squid 2.6进行WEB加速,Squid 和Apache均在同一台服务器上面,效果非常明显,看到论坛上好多人问如何配置squid2.6支持,虚拟主机
现在将安装过程贴出和大家一起分享,给菜鸟们一个学习机会和老鸟们一个批评指正的机会
主机配置为: CPU: AMD64 Sempron 3100  内存: 2GB RAM
下载:wget  [url]http://www.squid-cache.org/Versions/v2/2.6/squid-2.6.STABLE6.tar.bz2[/url]
tar jxvf squid-2.6.STABLE6.tar.bz2
安装: ./configure --with-maxfd=65536
这个--with-maxfd参数是增大squid文件描述符到65536
安装完毕后开始配置/usr/local/squid/etc/squid.conf
[Copy to clipboard] [ - ]CODE:
visible_hostname [url]www.yoursite.com[/url]
http_port xx.xx.xx.xx:80 vhost vport
#xx.xx.xx.xx为这台服务器的IP地址
icp_port 0
cache_mem 400 MB
#设置Squid所能使用的内存共400MB,这个值因人而异
cache_swap_low 90
cache_swap_high 95
maximum_object_size 20000 KB
#最大缓存文件大小,超过这个值则不缓存,这个值因人而异
maximum_object_size_in_memory 4096 KB
#装入内存缓存的文件大小,这个值对Squid的性能影响比较大,因为默认值是8K,超过8K的文件都不装入内存,而实际应用中很多网页和图片等都超过8KB, 个人认为如果缓存不装入内存而存在磁盘上,性能和apache直接读取磁盘文件没什么区别,甚至不如直接访问apache,现在设置成小于4兆的文件通通装入内存缓存.
cache_dir ufs /tmp1 10000 16 256
#磁盘缓存的类型和目录,大小,一二级目录的设置,这里磁盘缓存大小是10G
cache_store_log none
#这个设置是不记录store.log
emulate_httpd_log on
#打开emulate_httpd_log选项,将使Squid仿照Aapche的日志格式
logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh
#日志格式combined的设置
pid_filename /var/log/squid/squid.pid
cache_log /var/log/squid/cache.log
access_log /var/log/squid/access.log combined
#这里是设置pid和日志文件的位置,因人而异,同时日志格式是combined,awstats可以直接调用分析了
acl all src 0.0.0.0/0.0.0.0
acl QUERY urlpath_regex cgi-bin .php .cgi .avi .wmv .rm .ram .mpg .mpeg .zip .exe
cache deny QUERY
#设置不想缓存的目录或者文件类型

acl picurl url_regex -i \.bmp$ \.png$ \.jpg$ \.gif$ \.jpeg$
acl mystie1 referer_regex -i aaa
http_access allow mystie1 picurl
acl mystie2 referer_regex -i bbb
http_access allow mystie2 picurl
#设置防图片盗链的,其中aaa,和bbb分别是虚拟主机的域名,referer中必须包含有aaa或者bbb的域名才能访问图片
acl nullref referer_regex -i ^$
http_access allow nullref
acl hasref referer_regex -i .+
http_access deny hasref picurl
#设置允许直接访问图片和拒绝referer中没有包含aaa或着bbb的访问图片
cache_peer xx.xx.xx.xx parent 81 0 no-query originserver login=PASS
#xx.xx.xx.xx还是本机服务器的IP,81则是apache的端口,如果你的虚拟主机有用户名和密码保护起来的目录必须设置login=PASS,否则认证会失效
cache_effective_user nobody
cache_effective_group nobody
#squid使用的用户组和用户名
squid配置完成!
建立缓存和日志目录,并改变权限使squid能写入
mkdir /tmp1
mkdir /var/log/squid
chown -R nobody:nobody /tmp1
chmod 666 /tmp1
chown -R nobody:nobody /var/log/squid
-----------------------
Apache需要改动的配置
[Copy to clipboard] [ - ]CODE:
Port 81
#要把端口改为81
NameVirtualHost xx.xx.xx.xx:81
#本台主机IP和端口
虚拟主机配置
<VirtualHost xx.xx.xx.xx>
    ServerAdmin [email]xxx@yahoo.com[/email]
    DocumentRoot /home/aaa/www
    ServerName aaa.com
    ServerAlias [url]www.aaa.com[/url]
    ScriptAlias /cgi-bin/ "/home/aaa/cgi-bin/"
    <Directory />
      Options Includes FollowSymLinks
      AllowOverride All
    </Directory>
</VirtualHost>
如果还有别的虚拟主机请参照上面设置
---------------------------------------------------------
重启apache : apachectl restart
----------------------------------------------------------
首次运行squid要先建立缓存
/usr/local/squid/sbin/squid -z
启动squid
echo "65535" > /proc/sys/fs/file-max
ulimit -HSn 65535
/usr/local/squid/sbin/squid
大家最好把这几句话放到squid启动脚本里面,这样才会获得65536文件描述符
最好还编辑/etc/hosts 文件
添加以下内容
xx.xx.xx.xx aaa.com [url]www.aaa.com[/url] bbb.com [url]www.bbb.com[/url]
这样免去查询DNS,速度也快一些

现在大家肯定急着要打开浏览器访问你的网站看看效果吧,其实没啥变化,要等到有流量访问,squid把文件都装到内存后,效果才明显。可以用top命令观察squid的内存使用情况或者用
cat /var/log/squid/access.log |grep TCP_MEM_HIT
如果看到很多的TCP_MEM_HIT ,这表明该文件是从内存缓存读取的,squid已经起作用了!你再用浏览器打开该文件,应该是快如闪电了。。呵呵,大功告成了! 还有其他类型的HIT,如TCP_HIT等等,这些是从磁盘读取的,我觉得加速的意义不大,只不过缓解了apache的压力而已。
后记: 我的服务器因流量很大,大多都是静态的网页,日访问量常常上10W, apache常常不堪负重,苟延残存,任务数常到达300甚至400,后来安装squid2.6接管了大部分的apache,服务器如释重负,不但速度有提升,而且系统负载也低了很多,任务数稳定在100~120之间,任他流量波涛汹涌,服务器依然屹立不倒。不过squid就是比较吃内存,如果服务器能的内存加到4GB那就爽多了。
 

转载于:https://blog.51cto.com/cqfish/138693

squid2.6加速WEB支持虚拟主机配置心得体会 .txt相关推荐

  1. 访问限制和身份验证和虚拟主机配置的三种方式

    实验:配置访问限制和身份验证登录和三种方式配置虚拟主机访问 设置服务访问控制 限制策略规则 all 表示任意IP地址 Require all granted 允许所有主机访问 Require all ...

  2. java web 虚拟主机配置

    转载自该blog http://blog.csdn.net/xushuaic/article/details/8675783 笔记摘要: 这里介绍了Tomcat服务器的结构,WEB应用的基础知识,一个 ...

  3. Web服务器群集——编译安装Nginx-1.16及虚拟主机配置

    编译安装Nginx-1.16及虚拟主机配置 准备工作 编译安装Nginx Nginx添加为系统服务 全局配置文件 Nginx虚拟主机 准备工作 [root@pakho ~]# systemctl st ...

  4. Nginx编译安装与虚拟主机配置

    1.Nginx的简介 nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器:因它的稳定性.丰富的功能集.示例配置文件和低系统资源的消耗而闻名,nginx还有非 ...

  5. apache2.2 虚拟主机配置

    一.改动httpd.conf 打开appserv的安装文件夹,找到httpd.conf文件,分别去掉以下两行文字前面的#号. #LoadModule vhost_alias_module module ...

  6. Ubuntu 16.04与Apache虚拟主机配置的步骤详解

    这篇文章主要给大家介绍了关于Ubuntu 16.04与Apache虚拟主机配置的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用ubuntu16.04系统具有一定的参考学习价值,需要的朋友 ...

  7. nginx 多个root_nginx虚拟主机配置

    nginx 虚拟机配置 什么是虚拟主机? 虚拟主机是一种特殊的软硬件技术,它可以将网络上的每一台计算机分成多个虚拟主机,每个虚拟主机可以独立对外提供www服务,这样就可以实现一台主机对外提供多个web ...

  8. nginx之配置文件解读及虚拟主机配置

    文章目录 一.认识配置文件 1.整体结构 2.各"块"功能 3.最详细的配置文件解释 二.配置虚拟主机 1.什么是虚拟主机? 2.虚拟主机类型 3.配置虚拟主机   如果你还没有搭 ...

  9. Nginx教程(二) Nginx虚拟主机配置

    Nginx管理虚拟主机 虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台"虚拟"的主机,每台虚拟主机都可以是一个独立的网站,可以具有独立的域名,具有完 ...

最新文章

  1. mysql ignore index,mysql强制索引FORCE INDEX/IGNORE INDEX忽略索引
  2. 使用Spinner和setDropDownViewResource
  3. oracle存储过程隐式函数,Oracle存储过程,函数。
  4. (五)ElasticSearch 6.1.1数据类型
  5. gulp通过http-proxy-middleware开启反向代理,实现跨域
  6. SQL Server 2005:面向信息管理的全新平台
  7. ubuntu 18.04 conda 环境中编译 pytorch
  8. Arcgis Javascript那些事儿(三)---arcgis sever服务器注册关于数据拷贝问题
  9. oracle查询语句转sql,将sql server查询语句转换为oracle查询语句[紧急]
  10. 倍福plc控制器修改地址
  11. eda交通灯控制器波形输入_EDA交通灯课程设计十字路口交通灯控制器设计.doc
  12. win10关闭触摸板自动开启
  13. 从君臣到战友:《谦逊领导力》就是敏捷领导力
  14. 常见的四种EDI传输协议
  15. vue子组件的使用和事件传递
  16. 华为防火墙nat技术之服务器映射
  17. PPT制作(文字排版)
  18. 巡逻机器人(Patrol Robot, Uva1600)
  19. 纯C语言日志类库 Zlog
  20. 如何根据选股条件选择基本面量化股票池?

热门文章

  1. .NET常用功能和代码[总结与收藏]
  2. 官方系统镜像烧写(windows下使用OTG)
  3. java formatter()_Java Formatter locale()用法及代码示例
  4. 面试题 锁消除是什么
  5. 用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变
  6. String有两种赋值方式
  7. Nginx进行流量限制的解决方案
  8. sap实施和开发哪个前景_2021年了!还不知道 SAP顾问的职业前景?
  9. java 正则表达式 提取ip_java正则表达式提取地址中的ip和端口号
  10. libghttp 编译及封装使用实例