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

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 Cprefix=/usr/local/squid3 Cenable-async-io=100 Cwith-pthreads Cenable-storeio="aufs,diskd,ufs" Cenable-removal-policies="heap,lru" Cenable-icmp Cenable-delay-pools Cenable-useragent-log Cenable-referer-log Cenable-kill-parent-hack Cenable-arp-acl Cenable-default-err-language=Simplify_Chinese Cenable-err-languages="Simplify_Chinese English" Cdisable-poll Cdisable-wccp Cdisable-wccpv2 Cdisable-ident-lookups Cdisable-internal-dns Cenable-basic-auth-helpers="NCSA" Cenable-stacktrace Cwith-large-files Cdisable-mempools Cwith-filedescriptors=65535 Cenable-ssl Cenable-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 本文首发于
判断CC攻击 netstat命令详解

判断CC攻击 netstat命令详解

查看所有80端口的连接数 代码如下: netstat -nat|grep -i "80″|wc -l 对连接的IP按连接数量进行排序 代码如下: netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n 查看TCP连接状态 代码如下: netstat -nat |awk '{print $6}'|sort|un ···
Linux下的Apache与PHP安全设置技巧

Linux下的Apache与PHP安全设置技巧

(1) safe_mode: 以安全模式运行php; 在php.ini文件中使用如下 safe_mode = On (使用安全模式) safe_mode = Off (关闭安全模式) 在apache的httpd.conf中VirtualHost的相应设置方法 php_admin_flag safe_mode On (使用安全模式) php_admin_flag safe_mode Off (关闭安 ···
Mysql常用命令 详细整理版

Mysql常用命令 详细整理版

Mysql常用命令   show databases; 显示数据库   create database name; 创建数据库   use databasename; 选择数据库   drop database name 直接删除数据库,不提醒   show tables; 显示表   describe tablename; 显示具体的表结构   select 中加上distinct去除重复字段 ···
优化Apache服务器性能的方法小结

优化Apache服务器性能的方法小结

测试与提高性能 Apache服务器已经被设计得尽可能的快,即使你用一台配置不高的机器,用不着进行太复杂的设置,它的响应内容就足以塞满以前的各种窄带连接。但随网站内容日益复杂和带宽的增加,对Apache进行优化以取得更好的性能变得日益重要起来。 如果优化的结果仅仅是极小的性能提升那真是浪费时间。试想一下,你花了好几个小时甚至几天调整Apache的各种参数但结果仅是几个百分点的性能提升?因此,在优化前你做的第一步应该是测试你目前的服务器的性能水平以便决定如何优化你的服务器并衡量优化的效果。 关于对Apache的测试我们已经不是第一次提到了(见《冲出水面》一文),如同我们以前提到的,确定到底是哪一部分导致的瓶颈往往是一件困难的事,是因为Apache本身的设置问题还是由于你使用的动态网站程序环境?关于查找是否是因为网站程序引起的问题已经超出了本文的范围,这里我们主要讲一下提高 Apache服务器速度的一些通常做法以及它如何与构成WEB网站的其它组件进行交互。 主机硬件 Apache所在的机器与操作系统环境是对性能影响最大因素,很明显,一以368的PC与一台P4或双处理器的机器不会有同样的性能。不过,如果不涉及硬件的改变,我们可以做的最大的事是首先看一下Apache是否运行在一台专用的服务器上,如果与其它应用共用一台服务器肯定会影响服务器的性能。 在大多数情况下,告别是对静态网站而言,内存数量是一个影响性能的关键因素,因为它决定了Apache可以缓存多少内容。它缓存的内容越多,在硬盘上读取内容的机会就越少,而存取硬盘上的特定文件是一件很费时的操作。如果你的网站主要是一些静态内容,你最好使用mod_cache选项,如果你的内存足够大,可以使用mod_mem_cache选项。 第一个选项将信息缓存在磁盘上,当它与mod_include选项一起使用时会有很好的效果,这个选项在建立一个页面时在缓存中保存它的最终版本。使用mod_mem_cache将缓存内容保存在一个可以被所有Apache进程共享的内存堆中。 使用更快的磁盘或进一步使用RAID可以提高Apache对磁盘文件的访问速度。注意,如果你做了下面的所有这些优化,一个硬件的(而非软件)升级方案是更好的选择。最后一个谈到的关于硬件的问题是CPU能力,这对动态内容网站的影响很大,动态内容越多要求越高。 通过挤出Apache服务器的每一分潜力你可以让你的网站留给别人的印象大大改观,特别是对一些动态网站更是如何。这篇文章主要涉及到对Apache服务器的安装和设置如何进行优化,这也是你最有控制权的部分。 测试与提高性能 Apache服务器已经被设计得尽可能的快,即使你用一台配置不高的机器,用不着进行太复杂的设置,它的响应内容就足以塞满以前的各种窄带连接。但随网站内容日益复杂和带宽的增加,对Apache进行优化以取得更好的性能变得日益重要起来。 如果优化的结果仅仅是极小的性能提升那真是浪费时间。试想一下,你花了好几个小时甚至几天调整Apache的各种参数但结果仅是几个百分点的性能提升?因此,在优化前你做的第一步应该是测试你目前的服务器的性能水平以便决定如何优化你的服务器并衡量优化的效果。 关于对Apache的测试我们已经不是第一次提到了(见《冲出水面》一文),如同我们以前提到的,确定到底是哪一部分导致的瓶颈往往是一件困难的事,是因为Apache本身的设置问题还是由于你使用的动态网站程序环境?关于查找是否是因为网站程序引起的问题已经超出了本文的范围,这里我们主要讲一下提高 Apache服务器速度的一些通常做法以及它如何与构成WEB网站的其它组件进行交互。 主机硬件 Apache所在的机器与操作系统环境是对性能影响最大因素,很明显,一以368的PC与一台P4或双处理器的机器不会有同样的性能。不过,如果不涉及硬件的改变,我们可以做的最大的事是首先看一下Apache是否运行在一台专用的服务器上,如果与其它应用共用一台服务器肯定会影响服务器的性能。 在大多数情况下,告别是对静态网站而言,内存数量是一个影响性能的关键因素,因为它决定了Apache可以缓存多少内容。它缓存的内容越多,在硬盘上读取内容的机会就越少,而存取硬盘上的特定文件是一件很费时的操作。如果你的网站主要是一些静态内容,你最好使用mod_cache选项,如果你的内存足够大,可以使用mod_mem_cache选项。 第一个选项将信息缓存在磁盘上,当它与mod_include选项一起使用时会有很好的效果,这个选项在建立一个页面时在缓存中保存它的最终版本。使用mod_mem_cache将缓存内容保存在一个可以被所有Apache进程共享的内存堆中。 使用更快的磁盘或进一步使用RAID可以提高Apache对磁盘文件的访问速度。注意,如果你做了下面的所有这些优化,一个硬件的(而非软件)升级方案是更好的选择。最后一个谈到的关于硬件的问题是CPU能力,这对动态内容网站的影响很大,动态内容越多要求越高。 服务器设置 如果你的环境已经建立Apache也已经经过优化,就可以查看你的设置文件来进行下一步的优化措施。一个好的方法就是简化你的设置文件将文件中的指示(directives)减少到几百行内,首先是删除掉那些注释行,进而删除任何非必要的内容。 简化设置文件 第一步是简化设置设置文件,它并不带来任何直接的性能提升,但它将使设置文件易于使用减少你出错的机会。 在进行优化之前,从一个默认提供的设置文件开始是一个不错的主意。这些文件常被放在Apache的设置目录中,文件名为 httpd.conf.orig 或者 httpd-std.conf,不要使用如performance-std.conf类似名称的文件,从长远的观点看,如果你准备在里面加入大量的附加设置信息,它决不是一个好起点。另一方面,如果你的目标是建立一个很快的静态WEB服务器,这可能是让服务器运行起来的最简单方法。 如果你熟悉Apache的设置指示用法或乐意浏览帮助文件,你可以从设置文件中删除所有的注释内容,因为它们经常让实际的指示内容变得难找,你也可以删除对当前平台上用不到的多处理机方式(MPM)的引用。 禁用模块 现在,我们已经得到了一个清爽的设置文件,下面我们可以开始删除其中我们系统用不到的元素,特别是: ●HostnameLookups(主机名查找),这增加了处理每个请求的开销,首先,服务器会对DNS系统做一个反向查询以找出客户系统的主机名,然后又进行正向查询看获得的主机名是否真实指向客户的IP。大多数情况下,你可以简单的关闭这个功能,如果你经常处理服务器日志,这个工作完全可以在以后进行。你可以通过在设置文件中加入指示HostnameLookups off来关闭这个功能。 ●符号连接。当打开这个选项时,Apache将检查每个请求中是否包含对符号连接的引用,这将对请求中包含的每个路径调用一次lstat()系统调用。除非你准备使用符号连接,否则用 Options -FollowSymLinks 来关掉它。 ●服务器状态信息。尽管这对测试与监控服务器很有用,但它也为服务器带来了额外的开销,你可以通过寻找任何类似SetHandler server-status的指示来关闭,如果可能,你可以在安装Apache时移除这个模块。 ●在可以更精确的时候尽可能不要使用通配符之类的灵活选项,例如,对于DirectoryIndex指示,明确的指定设置文件列表,最常用的放在最前。 ●除非你有很好的理由否则就允许CGI的执行,将似有的CGI文件放到一个特定的目录并为之设定正确的权限,这避免了Apache对每一个请求都要判断一次要求的是一个静态文件还是一个动态文件。 禁用日志 写入日志信息是一个很花费时间的工作,尽管Apache保持日志文件的打开状态以节省打开文件的时间,但仍然得花费不少的时间。如果没有必要存储日志信息,你可以关闭这个选项以节省出更多的处理器时间,只需要在设置文件中把日志那一行注释掉就可以关掉它。 如果必须保留日志,你可以关闭HostnameLookups选项(见上文)然后把日志文件拷备到另一台机器上做进一步分析。 简化目录级的设置 htaccess文件可以极大的扩展Apache的设置参数,而无需每次你改变设计都要编辑Apache主设置文件,但对这个文件的使用也降低了服务器的性能。 如果使用这个文件,Apache必需首先在当前目录中查找是否存在这个文件,如果存在就解析这个文件并在当前目录中应用文件中的设置。更坏的是,Apache不仅要查看当前的目录,还要查看当前目录的所有上层目录是否包括htaccess文件以根据所有这些文件最终确定设置。 如果你想最优化服务器的性能,你应该禁止使用htaccess文件,任何基本目录的设置都可以在主设置文件中进行,而主设置文件仅在服务器启动时解析一次。为了禁用htaccess文件,在任何节里加上指示AllowOverride None。 多处理方式设置 多处理方式(Multi-Processing Module/MPM)他允许特定平台处理多个并发连接。MPM模块是平台相关的,对于Unix、 Windows、BeOS、和NetWare有不同的解决方案,一些平台有不止一个方案可以选择。对大多数用户而言,对于特定平台的默认设置已经工作得很好,而精确调整这些参数是一个费时的工作。不过如果你想最大限度的挖掘Apache的潜力,你必须调整这些设置。 对大多数平台而言,只有一种MPM可选,不过在UNIX下则有两个选项:prefork与worker,prefork模式生成多个相同的 Apache 进程,而worker模式创建多个线程。通常而言,对于只有一到两颗处理器的系统,prefork模式工作得更好,而对于拥有更多处理器的系统,线程模型工作得更有效率。 不管哪种情况,MaxClients指示是最有效的提高服务器性能的方法,它控制了Apache可以处理的最大并发连接数。 优化静态内容 如果你的WEB服务器使用了大量静态内容或者你分别用两个WEB服务器处理动态和静态内容,那么你现在的主要目标就是缩短服务器发送被请求内容的响应时间,最简单的方法就是使用mod_cache缓存模块。你可以使用mod_disk_cache和mod_mem_cache来分别提供基于磁盘的缓存和基于内存的缓存。 你可以查看关于mod_cache的说明文件以取得进一步的信息。 优化动态内容 动态内容可能是所有WEB服务器中最消费时间的部分,特别是使用CGI的时候,一个简单的程序都可能会把响应时间增加好几秒。 使用基于脚本的方案的一大好处是它们在Apache里装入了解释器,这就减少了执行时再装入解释器的时间,一些方案还把解析过的脚本缓存起来,这样下一次遇到同样的请求就可以直接执行而无需再次解析。 对特定系统的调整优化很复杂而且很花时间,而且你需要调整特定的脚本以利用优化的成果。 不过对动态内容的优化效果是非常明显的,仅仅是把perl脚本的执行模式从CGI转到mod_perl就可以减少多达70%的执行时间,如果我们进一步,还可以使用到数据库的持久连接或在多次请求之间缓存信息,这对电子商务网站非常有用,它也减小了不同请求间重复装载信息的开销。 总结 尽管Apache是一个高可定制的功能强大且相当复杂的服务器软件,我们很有兴趣的注意到即使是Apache的标准安装也可以得到不错的性能。调整 Apache的设置参数是一个可以轻易显著提高服务器性能的方法。但不幸的是,常常我们在Apache里最无法控制的内容--例如网站的动态内容脚本和 CGI是影响网站性能的最重要方面,如果你管理一个典型的Apache服务器你会发现Apache响应一个传入连接以及最后把内容发送给客户的所花费的时间是以毫秒记的,而等待所需数据资源的时间常常达到几秒钟。 当然,这并不是说我们的优化工作没什么意义,优化的效果日积月累也不可小视。另外,重要的是,通过简化你的设置文件,你可以大大减小服务器的管理负担。
apache 配置成滚动日志的方法

apache 配置成滚动日志的方法

下面配置配置成每24小时产生1个新的日志文件: #先搭建1个很简单网站进行访问 DocumentRoot E:/ApacheTestWeb <Directory E:/ApacheTestWeb> AllowOverride None Allow from all </Directory> #修改如下配置: CustomLog "|D:/Apache2.2/bin/rota ···
Apache 安全配置方法

Apache 安全配置方法

令Apache占领Web服务器半壁江山的一个重要原因就是它可以提供一个安全的Web操作环境。Apache团体为保证其安全性做了大量的工作。想当年,在此产品被发现存在一个安全缺陷时,Apache的开发人员就尽快地搞出了一个补丁。 然而,即管Apache已经堪称安全的产品,如果你在构建你的服务器时没有采取一些安全预防措施,这种Web服务器仍易于受到很多攻击。 在本文中,笔者将为你提供10个技巧,借此你 ···
正确配置与维护Apache安全性设置方法

正确配置与维护Apache安全性设置方法

一,Apache服务器的介绍 Apache服务器它是Internet网上应用最为广泛的Web服务器软件之一。Apache服务器源自美国国家超级技术计算应用中心(NCSA)的 Web服务器项目中。目前已在互联网中占据了领导地位。Apache服务器得经过精心配置之后,才能使它适应高负荷,大吞吐量的互联网工作。快速、可靠、通过简单的API扩展,Perl/Python解释器可被编译到服务器中,且完全免费, ···
Apache 的 order deny allow 设置说明

Apache 的 order deny allow 设置说明

所以,最常用的是: Order Deny,Allow Allow from All 注意“Deny,Allow”中间只有一个逗号,也只能有一个逗号,有空格都会出错;单词的大小写不限。 上面设定的含义是先设定“先检查禁止设定,没有禁止的全部允许”,而第二句没有Deny,也就是没有禁止访问的设定,直接就是允许所有访问了。这个主要是用来确保或者覆盖上级目录的设置,开放所有内容的访问权。 按照上面的解释, ···
Apache与Tomcat服务器整合的基本配置方法及概要说明

Apache与Tomcat服务器整合的基本配置方法及概要说明

首先,当然是安装Apache HTTP Server,并准备mod_jk.so文件,这些都可以在http://apache.org中找到,要注意的是,mod_jk.so的版本要和Apache HTTP Server的版本对应,如果没有对应的就要自己重新编译Apache,但是一般没必要,肯定会有对应版本。 开始: 1.安装Apache HTTP Server,Server Name 和 Domain ···
在Fedora 10下配置SVN服务器的步骤

在Fedora 10下配置SVN服务器的步骤

svn服务器有2种运行方式:独立服务器和借助apache。2种方式各有利弊。 svn存储版本数据也有2种方式:BDB和FSFS。因为BDB方式在服务器中断时,有可能锁住数据(我在搞ldap时就深受其害,没法根治),所以还是FSFS方式更安全一点。 1.安装subversion: yum install subversion.i386 (注;在mandriva下面需要安装urpmi subversi ···