liunx服务使用(squid 代理服务器)

咳咳,如果一个网站,因为访问的人多反应慢怎么办? 如果自己的公司内部想把一些网站禁止访问,做控制怎么办?好好学学squid代理服务器吧 他都可以做到。



squid (代理服务器)

正向代理

安转包:

rpm -ivh squid-2.6.STABLE21-6.el5.i386.rpm

卸载包

rpm -e squid

启动服务

service squid restart


#如果启动失败就把自己的主机名字该进vim /etc/squid/squid.conf去

visible_hostname

visible hostname 用户名


可以找 squid 中文指南写的很详细


netstat -anplt |grep squid 查看squid 监听那个端口

cd /etc/init.d/ 这里都是脚本


/etc/init.d/httpd start 启动httpd

service httpd start 一样的


---------------------------------------------------------------

主配置文件

vim /etc/squid/squid.conf

缓存目录

cd /var/spool/squid/


------------------------

Squid 主要组成部分

服务名:squid

主程序:/usr/sbin/squid

配置目录:/etc/squid

主配文件:/etc/squid/squid.conf

监听tcp端口号:3128

默认访问日志文件:/var/log/squid/access.log

5.squid 常用配置选项(/etc/squid/squid.conf)

http_port 3128 (还可以只监听一个一个ip http_port 192.168.0.1:3128)

cache_mem 64MB#缓存占内存大小

maximum_object_size 4096KB#最大缓存块

reply_body_max_size 1024000 allow all #限定下载文件大小

access_log /var/log/squid/access.log #访问日志存放的文件

visible_hostname proxy.test.xom #可见的主机名

cache_dir ufs /var/spool/squid 100 16 256

usf:缓存数据的存储格式

/var/spool/squid 缓存目录

100 : 缓存目录占磁盘空间大小(M)

16 :缓存空间一级子目录个数

256 :缓存空间二级子目录个数

cache_mgr [email protected] #定义管理员邮箱

http_access deny all #访问控制


-----------------------------

正向代理服务器

vim /etc/squid/squid.conf

http_port 3128

#access_log /var/log/squid/access.log

http_access allow all 把这里设置成允许


主机 作两个地址 一个是外网 一个内网 http_access allow all 把这里设置成允许

客户端 设置好内网 设置好后 在网页上-编辑-收选项-高级-网络-设置

访问 intelnet 的地址


---------------------

透明代理


透明代理缓冲服务器的配置:


vim /etc/squid/squid.conf

1 http_port 3128 transparent

b.添加iptables规则:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 3128


客户端

查看路由

route -n

添加路由网关

route add default gw 192.168.1.2


----------------------------

透明代理的访问控制 !代表取反 匹配是顺序匹配 数字名称不性


定义acl列表

acl 列表名称 列表类型 列表内容 …

针对acl列表进行限制

http_access allow或deny 列表名……



拒绝某个ip地址

acl dy_ip src 192.168.1.103/32

http_access deny dy_ip


拒绝某个网段

acl dy_ip src 192.168.1.0/24

acl dy_ip src 192.168.1.0/24 192.168.10.0/24

acl dy_ip src 192.168.1.0-192.168.10.0/24


http_access deny dy_ip

---------------


通过文件拒绝某个ip的访问

acl guests src “/etc/squid/guest”


http_access deny guest

/etc/squid/guests内容

192.168.1.131


----------------

拒绝端口号

acl d_p port 80

acl d_p port 1-1024

http_access deny d_p



-----------------


允许域名为uplooking.com域访问本地代理服务器 (其实就是域名解析的IP 还是限制IP)


acl permitted_domain src uplooking.com


http_access allow permitted_domain

------------------


拒绝访那个一个网站

acl B dstdomain www.squid-cache.org


http_access deny B


--------------


服务

acl FTP proto FTP

http_access deny FTP


time 时间

CodeDay

SSunday 日

MMonday 一

TTuesday 二

WWednesday 三

HThursday 四

FFriday 五

ASaturday 六

DAll weekdays (M-F)


时间跨越子夜,你需要把它们分成两个ACL来写,或者使用否定机制来定义非忙时。例如:

acl Offpeak1 20:00-23:59

acl Offpeak2 00:00-04:00

http_access allow Offpeak1 ...

http_access allow Offpeak2 ...

acl Peak 04:00-20:00

http_access allow !Peak ...


应该在同一个time ACL里放置多个日期和时间范围列表。例如,假如你输入

:acl Blah time M 08:00-10:00 W 09:00-11:00,实际能做到的是:acl Blah time MW 09:00-11:00,解析仅仅使用最后一个时间范围。

正确的写法是,将它们写进两行:

acl Blah time M 08:00-10:00

acl Blah time W 09:00-11:00


控制访问包含sexy字段的网址

acl deny_url url_regex -i sexy

http_access deny deny_url


拒绝某些字段结尾的网址

acl RealFile urlpath_regex -i \.rmvb$ \.rm$

http_access deny RealFile

解释一下含义

acl kaixin_net dstdomain .kaixin.com 定义网站

acl adv_net src 192.168.0.2-192.168.0.20/255.255.255.255 定义IP

acl mynetwork src 192.168.0.0/24

acl kaixin_time time MTWHF 7:00-9:30

acl all src 0.0.0.0/0.0.0.0


http_access allow adv_net kaixin_time kaixin_net

http_access deny mynetwork kaixin_time kaixin_net

http_access allow all



练习

允许网段10.0.0.124/24以及192.168.10.15/24内的所有客户机访问代理服务器,

并且允许在文件/etc/squid/guest列出的客户机访问代理服务器,除此之外的客户机将拒绝访问本地代理服务器:

acl a src 10.0.0.124/24

acl b src "/etc/squid/guest"

http_access allow a b

http_access deny all


允许域名为job.net、gdfq.edu.cn的两个域访问本地代理服务器,其他的域都将拒绝访问本地代理服务器:

acl a src job.net gdfq.edu.cn

http_access allow a

http_access deny all



拒绝客户机通过代理服务器访问文件中指定IP或者域名的网站,

其中文件/etc/squid/ deny_ip中存放有拒绝访问的IP地址,

文件/etc/squid/deny_dns中存放有拒绝访问的域名:

acl aa dst "/etc/squid/deny_ip"

acl bb src "/etc/squid/deny_dns"

http_access aa bb

touch /etc/squid/deny_dns

touch /etc/squid/deny_ip

允许所有的用户在规定的时间内(周一至周四的8:30到20:30)访问代理服务器

只允许特定的用户(系统管理员,其网段为:192.168.10.0/24)在周五下午访问代理服务器,

其他的在周五下午一点至六点一律拒绝访问代理服务器:

acl a time MTWH 8:30-20:30

acl b src 192.168.10.0/24

acl c time F 13:00-18:00

http_access allow all a

http_access allow c b

http_access deny all


---------------------------------------------------------------------------

配置过程

Http_port 80

cache_peer 192.168.1.105 parent 8888 0 originserver


cache_peer Web服务器地址 服务器类型 http端口 icp端口 [可选项]

cache_peer 指定真正WEB服务器的位置

parent 服务器类型对应到目标主机的缓存级别,上游Web主机一般使用“parent”(父服务

器)

icp端口用于连接相邻的ICP(Internet Cache Protocol)缓存服务器(通常为另一台Squid主机),如果没有,则使用0;

originserver 表示该服务器作为提供Web服务的原始主机,

weight=n”指定服务器的优先权重,n为整数,数字越大优先级越高(缺省为1);

max-conn=n”指定反向代理主机到该web服务器的最大连接数。




第二种SQUID 反向代理,一对多WEB SERVER做负载均衡

192.168.0.2

/

Client ---squid server-----| ------> | - 192.168.0.3

1.1.1.1 \

192.168.0.4

Squid server的两个IP:1.1.1.1 192.168.0.254

3个web server分别是:192.168.0.2 192.168.0.3 192.168.0.4 需要有相同的页面内容,可以通过NFS共享页面内容,三个WEB server挂载NFS共享到/var/www/html下



配置文件中在一对一反向代理的基础上修改cache_peer行为如下三行

ache_peer 192.168.0.2 parent 8888 0 round-robin

ache_peer 192.168.0.3 parent 8888 0 round-robin

ache_peer 192.168.0.4 parent 8888 0 round-robin


第二种SQUID 反向代理,一对多WEB SERVER做负载均衡

192.168.0.2

/

Client ---squid server-----| ------> | - 192.168.0.3

1.1.1.1 \

192.168.0.4

Squid server的两个IP:1.1.1.1 192.168.0.254

3个web server分别是:192.168.0.2 192.168.0.3 192.168.0.4 需要有相同的页面内容,可以通过NFS共享页面内容,三个WEB server挂载NFS共享到/var/www/html下

配置文件中在一对一反向代理的基础上修改cache_peer行为如下三行

ache_peer 192.168.0.2 parent 8888 0 round-robin

ache_peer 192.168.0.3 parent 8888 0 round-robin

ache_peer 192.168.0.4 parent 8888 0 round-robin



-------------------------------------------------------------------


反向代理缓冲服务器配置

一对一的

squid服务器端

配置文件

/etc/squid/squid.conf


http_prot 80 vhost 改成80

#cache_peer

cache_peer 192.168.1.12 parent 80 0 originserver 添加上


tail -f /var/log/squid/access.log 日志文件显示那个地址访问你


-------------------------


一对多的(aapche)


反向代理


配置文件

/etc/squid/squid.conf

http_prot 80 vhost 改成80

#cache_peer

cache_peer 192.168.1.157 parent 80 0 round-robin

cache_peer 192.168.1.113 parent 80 0 round-robin

cache_peer 192.168.1.111 parent 80 0 round-robin








你可能感兴趣的:(代理服务器,service,配置文件,start,用户名)