系统环境:centos 5.5 64位

一、安装篇:

添加squid运行账户
groupadd squid
useradd -g squid -s /bin/false -M squid

添加日志目录、设置缓存和日志目录的权限
mkdir /data/{squidlog,cache}
chown -R squid.squid /data
2.7下载地址:
wget http://www.squid-cache.org/Versions/v2/2.7/squid-2.7.STABLE9.tar.gz
3.X下载地址:
wget http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE26.tar.gz
wget http://www.squid-cache.org/Versions/v3/3.1/squid-3.1.12.3.tar.gz

这里我选择3.X版本进行安装:
tar zxvf http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE26.tar.gz
cd squid-3.0.STABLE26
./configure --prefix=/usr/local/squid3 --enable-async-io=100 --with-pthreads --enable-storeio="aufs,diskd,ufs" --enable-removal-policies="heap,lru" --enable-icmp --enable-delay-pools --enable-useragent-log --enable-referer-log --enable-kill-parent-hack --enable-arp-acl --enable-default-err-language=Simplify_Chinese --enable-err-languages="Simplify_Chinese English" --disable-poll --disable-wccp --disable-wccpv2 --disable-ident-lookups --disable-internal-dns --enable-basic-auth-helpers="NCSA" --enable-stacktrace --with-large-files --disable-mempools --with-filedescriptors=65535 --enable-ssl --enable-x-accelerator-var
make
make install
make install-pinger

创建配置文件:
vi /usr/local/squid3/etc/squid.conf
加入内容见本文最后
+++++++++++++++++++++++
+++++++++++++++++++++++

初始化cache目录
/usr/local/squid3/sbin/squid -z

然后运行squid,注:-D参数用来跳过DNS检测
/usr/local/squid3/sbin/squid -D

最后设置squid开机自动启动
echo "/usr/local/squid3/sbin/squid -D " >>/etc/rc.local

二、维护篇:

以下是squid常用的命令:
如果修改过配置文件,则用下面的命令重读配置文件(即时生效)
/usr/local/squid3/sbin/squid -k reconfigure

检查配置文件配置的语法是否正确
/usr/local/squid3/sbin/squid -k parse

查看squid的日志和进程,看squid运行是否正常
ps -ef |awk '/^squid/'
cat /data/squidlog/cache.log
/usr/local/squid3/sbin/squid -k check ;echo $?
lsof -n |grep squid
lsof -i:80

关闭squid
发出关闭信号,等会话结束后彻底关闭
/usr/local/squid3/sbin/squid -k shutdown
关闭squid(更高优先级,直接关闭squid)
/usr/local/squid3/sbin/squid -k interrupt
关闭squid(最高优先级,直接杀死squid进程)
/usr/local/squid3/sbin/squid -k kill

滚动日志文件
/usr/local/squid3/sbin/squid -k rotate
设置每周二凌晨四点自动滚动日志
echo "00 4 * * 2 /usr/local/squid3/sbin/squid -k rotate " >>/etc/crontab

目前应用中的squid.conf文件,由于日志文件增长很快,所以直接输出到/dev/null丢弃掉了
#basic
cache_vary on
cache_effective_user squid
cache_effective_group squid
pid_filename /usr/local/squid3/var/logs/squid.pid
visible_hostname squid.12306.com
cache_mgr 250621008@qq.com
error_directory /usr/local/squid3/share/errors/Simplify_Chinese
icon_directory /usr/local/squid3/share/icons
mime_table /usr/local/squid3/etc/mime.conf
hosts_file /etc/hosts

acl DEIpadd dstdom_regex [0-9]$
http_access deny DEIpadd

cache_replacement_policy lru
memory_replacement_policy lru

http_port 80 vhost vport

cache_mem  4024 MB
maximum_object_size_in_memory 5120 KB

icp_port 0

#.cache_dir
cache_dir aufs /data/cache 50000 64 128

max_open_disk_fds 0
maximum_object_size 20 MB

#.cache_peer
cache_peer 192.168.8.20 parent 80 0 no-query originserver no-digest name=web1
cache_peer 192.168.8.21 parent 80 0 no-query originserver no-digest name=web2
cache_peer_domain web1 .cjzg.com
cache_peer_domain web2 .cjzg.com

#acl

acl src 0.0.0.0/0.0.0.0
acl Safe_ports port 80
acl SSL_ports port 443
acl LanSrc src 192.168.1.0/24
acl webdomain dstdomain .cjzg.com
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow LanSrc
http_access allow webdomain
http_access allow all

#refresh_pattern
refresh_pattern -i /$ 15 90% 600 reload-into-ims
refresh_pattern -i .html$ 15 90% 600 reload-into-ims
refresh_pattern -i .htm$ 15 90% 600 reload-into-ims
refresh_pattern -i .shtml$ 15 90% 600 reload-into-ims
refresh_pattern -i .hml$ 15 90% 600 reload-into-ims
refresh_pattern -i .gif$ 1440 90% 129600 reload-into-ims
refresh_pattern -i .swf$ 1440 90% 129600 reload-into-ims
refresh_pattern -i .jpg$ 1440 90% 129600 reload-into-ims
refresh_pattern -i .png$ 1440 90% 129600 reload-into-ims
refresh_pattern -i .bmp$ 1440 90% 129600 reload-into-ims
refresh_pattern -i .js$ 120 90% 129600 reload-into-ims
refresh_pattern -i .css$ 120 90% 129600 reload-into-ims
refresh_pattern -i .wma$ 1440 90% 21600 reload-into-ims
refresh_pattern -i .zip$ 1440 90% 21600 reload-into-ims
refresh_pattern -i .mp3$ 1440 90% 21600 reload-into-ims
refresh_pattern -i .rar$ 1440 90% 21600 reload-into-ims
refresh_pattern -i .rm$ 1440 90% 21600 reload-into-ims
refresh_pattern -i .flv$ 1440 90% 21600 reload-into-ims
refresh_pattern -i .rar$ 1440 90% 21600 reload-into-ims
refresh_pattern -i .rm$ 1440 90% 21600 reload-into-ims
refresh_pattern -i .avi$ 1440 90% 21600 reload-into-ims
refresh_pattern -i .3gp$ 1440 90% 21600 reload-into-ims
refresh_pattern -i .mp4$ 1440 90% 21600 reload-into-ims
refresh_pattern -i .wmv$ 1440 90% 21600 reload-into-ims

#keepalived
client_persistent_connections off
server_persistent_connections on

#log
emulate_httpd_log on
logformat combind %{X-Forwarded-For}>h %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh
cache_log /data/squidlog/cache.log
cache_access_log /dev/null combind
cache_store_log /dev/null
strip_query_terms off
logfile_rotate 10

#other
forwarded_for on
log_icp_queries off
via off
httpd_suppress_version_string off
ie_refresh off
tcp_recv_bufsize 32 KB
ipcache_size 1024
ipcache_low 90
ipcache_high 95
cache_swap_low 80
cache_swap_high 90
request_header_max_size 128 KB

quick_abort_min 20 KB
quick_abort_max 20 KB
quick_abort_pct 95

connect_timeout 1 minute
negative_ttl 0 minutes

read_timeout 30 seconds
pconn_timeout 120 seconds
half_closed_clients off
client_lifetime 10 minutes
shutdown_lifetime 5 seconds

hierarchy_stoplist cgi-bin ?
access_log /dev/null squid

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

squid 日常操作

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

squidclient -p 80 mgr:info   #squid运行状态信息
squidclient -p 80 mgr:mem    #squid内存使用情况
squidclient -p 80 mgr:objects   #quid已经缓存的列表
squidclient -p 80 mgr:diskd  #squid的磁盘使用情况

PURGE指令,它会强制更新某一url缓存信息:
squidclient -p 80 -m PURGE http://x.x.x.x/css/dnt.css

squid 日志切割
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#!/bin/bash
YEAR=`/bin/date +%Y`
DATA=`date +%m%d`
PATH=/data/squidlog
/usr/local/squid/sbin/squid -k rotate
cd $PATH
/bin/mkdir -p $YEAR
for ((i=0;i<=9;i++));
do
/bin/mv  access.log.$i ./$YEAR/access.log.$DATA.$i
/bin/mv  cache.log.$i ./$YEAR/cache.log.$DATA.$i
/bin/mv  store.log.$i ./$YEAR/store.log.$DATA.$i
done
cd $PATH/$YEAR
/usr/bin/find  ./ -type f -mtime 30 -exec gzip {} \;

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

转载于:https://blog.51cto.com/opsmysql/429299

【APP】squid 3.0反向代理配置相关推荐

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

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://liuyu.blog.51cto.com/183345/166381 nginx反 ...

  2. nginx反向代理模块配置详解_nginx反向代理配置详解

    反向代理配置 修改部署目录下conf子目录的nginx.conf文件(如/opt/nginx/conf/nginx.conf)内容,可调整相关配置. 将默认配置里面带#号注释内容去掉 grep -v ...

  3. ci框架 反向代理配置_docker-compose配置Nginx反向代理禅道

    本次项目会用到3个镜像分别是nginx.mysql 和禅道,以后若迁移服务器环境则只需下载这3个镜像即可 mysql与禅道镜像下载与构建参考:mysql   禅道 目录介绍 cloud # 文件名 + ...

  4. Nginx正向代理和反向代理配置

    前言 Nginx的反向代理功能应该是Nginx诸多功能里面最常用的一个功能了,正向代理的话可能使用的场景比较少,平时接触的也不多,本章内容仅包含这两个功能的基本使用配置,因为是本地版本的,所以不包含负 ...

  5. Nginx正向代理和反向代理配置 1

    前言 Nginx的反向代理功能应该是Nginx诸多功能里面最常用的一个功能了,正向代理的话可能使用的场景比较少,平时接触的也不多,本章内容仅包含这两个功能的基本使用配置,因为是本地版本的,所以不包含负 ...

  6. Nginx http和反向代理配置实例介绍

    Nginx  是一个高性能的 HTTP 和反向代理服务器,本节以实际实例介绍如何实现Nginx 反向代理. 1.  安装Nginx 安装Nginx之前,首先安装相关模块的依赖库: 这里安装Pcre和O ...

  7. Nginx教程系列四:实现反向代理配置

    文章目录 案例一 安装tomcat 配置Nginx反向代理 测试 案例二 安装第二个tomcat实例 准备测试页面 配置Nginx反向代理 测试 location 指令说明 案例一 预先安装nginx ...

  8. nginx反向代理配置实例分享

    nginx反向代理配置一例. 配置内容如下: user www www; worker_processes 8; error_log /usr/local/webserver/nginx/logs/n ...

  9. Nginx实现HTTP反向代理配置

    Nginx实现HTTP反向代理配置 无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家.教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家.点这里可以跳转到教 ...

最新文章

  1. C#如何根据DataTable生成泛型List或者动态类型list
  2. itoa函数的实现(不同进制)
  3. 嵌入式linux开发环境搭建——VirtualBox虚拟机网络环境解析
  4. 百度希壤元宇宙平台上线首个汽车数字展厅 领克探索汽车营销新方式
  5. k8s服务网关ambassador部署
  6. SAP UI5 应用开发教程之五十三 - 如何自定义 SAP UI5 数据类型(Data Type)试读版
  7. exit(),_exit()的区别
  8. Up or out!!!
  9. 什么是MircoPython?
  10. 25.TCP/IP 详解卷1 --- SNMP:简单网络管理协议
  11. 计算机二级栈,计算机二级国考office的高科技玩法之:堆栈的续集
  12. 冒泡排序Java实现以及时间复杂度分析
  13. 2021年中国DevOps现状调查报告发布!
  14. SQL Server 错误:尝试打开或创建物理文件时,CREATE FILE 遇到操作系统错误
  15. vue 批量下载图片并打包成压缩包
  16. 学界 | 大数据背景下,景观研究怎么做?
  17. 刘强东:大学打过好几份工 最赚钱的是编程
  18. “华夏”二字之由来——我们为何称为“华夏”
  19. 漏电检测系统客户端上位机设计
  20. c语言 自动dump 函数,(转)写个dump_stack

热门文章

  1. 全文详解:「深度学习」如何协助处理医疗中的「数据难题」
  2. 阿里智能对话交互实践与创新
  3. 来认识世界上第一支AI基金:模仿股票分析师 365天无间断工作
  4. 剑指云内存数据库,阿里云在下一盘大棋
  5. 中芯国际再曝内讧,联席 CEO 梁孟松愤然辞职
  6. 漫画:程序教你寻找股票买入卖出的最佳时机(动态规划)
  7. webstorm更改scss输出路径
  8. javascript中while循环、do....while与for循环的用法和区别
  9. 【C/C++学院】0831-类与对象的异常/面试100题1-100
  10. App 组件化/模块化之路——如何封装网络请求框架