centos下简单配置安装Squid 3.0反向代理

安装篇:

本教程应用环境为干净centos 5.5 ,预先分好并加载/data分区,并且关闭selinux及iptables

首先修改文件描述符并设定临时端口范围,这些设置重启后生效


代码如下:

cat >> /etc/security/limits.conf <<DDD
* soft nofile 8192
* hard nofile 20480
DDD

cat >> /etc/sysctl.conf <<DDD
#set temp port range
net.ipv4.ip_local_port_range = 32768 61000
DDD

init 6

确认修改是否正确


代码如下:

[root@sudutest ~]# ulimit -n
8192
[root@suduotest ~]# sysctl -n net.ipv4.ip_local_port_range
net.ipv4.ip_local_port_range = 32768 61000

添加squid专用账户


代码如下:

groupadd squid
useradd -g squid -s /bin/false -M squid

添加日志目录、设置缓存和日志目录的权限


代码如下:

mkdir /data/squidlog/
chown -R squid.squid /data

然后上传或者wget squid3.0软件tar包,tar zxvf解压,并且进入解压后的目录安装编译


代码如下:

./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

至此squid已经成功安装了,然后大家自己所需的/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
检查配置文件配置的语法是否正确
注:只有像这样的“cache_cf.cc(346) squid.conf:14 unrecognized: 'http1_port'”才是语法错误,
“WARNING: use of 'reload-into-ims'……”这类提示属于意见建议,可以忽略。
/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 $?

关闭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
设置每周二凌晨四点30分自动滚动日志

echo "30 4 * * 2 root /usr/local/squid3/sbin/squid -k rotate " >>/etc/crontab

目前应用中的squid.conf文件,由于日志文件增长很快,所以直接输出到/dev/null丢弃掉了


代码如下:

#basic
cache_effective_user squid
cache_effective_group squid
pid_filename /usr/local/squid3/var/logs/squid.pid
visible_hostname squid.678114.com
cache_mgr sudu@sudu.us
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 125.76.225.44 parent 80 0 no-query originserver no-digest name=all
cache_peer_domain all .678114.com

#acl
acl Safe_ports port 80
acl SSL_ports port 443
acl LanSrc src 192.168.100.0/24
acl webdomain dstdomain .678114.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 deny 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 web1 %{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 web1
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

本文首发于http://www.sudu.us/simple-to-install-squid-3-0-reverse-proxy-configuration/

(0)

相关推荐

  • CentOS下使用Squid架设CDN服务器的方法

    很多站长在建设大型网站的过程当中,常会遇到网站在特定地区打开速度慢的问题.这时候一般会在那个地区来做一个网站镜像,通过智能DNS来确定用户访问哪台镜像服务器. 这里我们采用WDCP和WDCDN来建立我们的CDN加速点.因为WDCDN依赖于WDCP,所以我们先来安装WDCP. 具体步骤如下: 第一步:安装WDCP 1.X wget http://dl.wdlinux.cn:5180/rpms/rpm_install_1x sh rpm_install_1x 中间会提示选择安装lamp 或 lnmp

  • CentOS 7中使用Squid提供HTTP代理详解

    本文主要记录了一下设置CentOS服务器使用Squid作为HTTP代理,及客户端的代理配置的方法,下面来看看详细的介绍吧. 使用Squid提供HTTP代理 主机上安装和设置Squid 作为网关的n147机器,公网IP是2.2.2.147.安装Squid,然后修改配置,启用服务. yum install -y squid # squid的配置文件在 /etc/squid/squid.conf,修改内容可参考下面的Dockerfile # 修改配置后,初始化squid的工作目录 squid -z #

  • centos下简单配置安装Squid 3.0反向代理

    安装篇: 本教程应用环境为干净centos 5.5 ,预先分好并加载/data分区,并且关闭selinux及iptables 首先修改文件描述符并设定临时端口范围,这些设置重启后生效 复制代码 代码如下: cat >> /etc/security/limits.conf <<DDD * soft nofile 8192 * hard nofile 20480 DDD cat >> /etc/sysctl.conf <<DDD #set temp port r

  • CentOS下使用yum安装python-pip失败的完美解决方法

    以前用Ubuntu的时候感觉很简单的事到ContOS上却变得很头痛,在执行以下命令安装python-pip居然什么也没执行. yum install python-pip 后来google了一下说是这个包在EPEL源里,要添加EPEL源才可以.然后按博客里说的方法添加,执行以下命令: sudo rpm -ivh epel-release* 但是最后提示系统里已经安装了最新的epel包,但为什么却用不了呢?google了一天多都没有结果,最后在一个博客看到一句话让我找到了方向.CentOS中有的源

  • centos下yum搭建安装linux+apache+mysql+php环境的方法

    一.脚本YUM源安装: 1.yum install wget #安装下载工具wget 2.wget http://www.atomicorp.com/installers/atomic #下载atomic yum源,配置CentOS 6.5第三方yum源 3. sh ./atomic #脚本执行 4. yum check-update #更新yum软件包 二.163yum源的安装 1.进入yum源配置目录 cd /etc/yum.repos.d 2.备份系统自带的yum源 mv CentOS-B

  • CentOS下Python3的安装及创建虚拟环境的方法

    安装python3 一.安装需要编译的关联库 yum instal -y zlib zlib-devel   (根据自己系统的情况,安装需要的关联库,同样用yum安装即可) 二.下载python3的安装包 cd /tmp #建议切换到临时文件夹 wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz 三.解压.编译.安装 #解压 tar -zxvf Python-3.6.3.tgz #进入解压后的目录 cd Python-3.6

  • Linux Centos下使用脚本安装Docker的方法

    Docker的主要作用是什么? 目前来看bai,Docker至少有以下应用场景: 1)测试:Docker 很适du合用于测试发布,将 Docker 封装后可zhi以直接提dao供给测试人员进行运行,不再需要测试人员与运维.开发进行配合,进行环境搭建与部署. 2)测试数据分离:在测试中,经常由于测试场景变换,需要修改依赖的数据库数据或者清空变动 memcache.Redis 中的缓存数据.Docker 相较于传统的虚拟机,更轻量与方便.可以很容易的将这些数据分离到不同的镜像中,根据不同需要随时进行

  • Nginx配置 location模块实现路由(反向代理、重定向)功能

    目录 前置文章: 匹配规则 proxy_pass 代理转发 root 与 index root 与 alias location 执行过程 rewrite 重定向 前置文章: Linux(CentOS7) 下 Nginx1.15.8 安装步骤 Nginx 的配置文件 nginx.conf 我们访问一个网址,服务器返回对应的资源.那么一个网址是如何对应一个资源的呢?用 Nginx 可以很好地帮我们实现路由功能,我们所有需要做的就是配置好 location 模块. 语法规则 location [=|

  • CentOS下编译、安装与配置nginx

    1. 安装nginx 1.1 选择稳定版本 我们编译安装nginx来定制自己的模块,机器CentOS 6.2 x86_64.首先安装缺少的依赖包: # yum -y install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel 这些软件包如果yum上没有的话可以下载源码来编译安装,只是要注意编译时默认安装的目录,确保下面在安装nginx时能够找到这些动态库文件(ldconfig). 从

  • windows系统下简单nodejs安装及环境配置

    相信对于很多关注javascript发展的同学来说,nodejs已经不是一个陌生的词眼.有关nodejs的相关资料网上已经铺天盖地.由于它的高并发特性,造就了其特殊的应用地位. 国内目前关注最高,维护最好的一个关于nodejs的网站应该是http://www.cnodejs.org/  这里不想谈太多的nodejs的相关信息.只说一下,windows系统下简单nodejs环境配置. 第一步:下载安装文件 下载地址:官网http://www.nodejs.org/download/  这里用的是

  • CentOs 7.*中配置安装phpMyAdmin的完整步骤记录

    前言 CentOs安装配置phpMyAdmin其实非常简单,所谓的安装其实是不存在的,因为phpMyAdmin是php写的嘛,所以只需要下载安装包然后解压之后,简单配置下就可以使用了,下面给他家说下如何正确配置phpMyAdmin 安装: 1.首先在phpMyAdmin官方网站 http://www.phpmyadmin.net/downloads下载源码包,或者通过我们进行下载://www.jb51.net/codes/405261.html  ,下载后上传到服务器解压即可,或者通过Linux

  • centos下最简安装openstack——使用packstack详解

    摘要: 先决条件:系统需要有两块硬盘和两张网卡. 配置网卡,如果系统已经能够联网则跳过此步 vi /etc/sysconfig/network-scripts/ifcfg-eth0; 修改 ONBOOT=yes; service network restart 安装wget,如果已经安装则跳过此步 yum install wget -y 分区用于cinder-volumes fdisk /dev/sdb; n p 1 ret ret w; vgcreate cinder-volumes /dev

随机推荐