关于我们
技术分享
技术分享
squid反向代理
squid反向代理
2021-04-22
最终实现目的
系统环境
服务器名 | IP | 端口 | 域名 |
Squid | 192.168.0.100 | 80 | \ |
DNS | 192.168.0.100 | 53 | \ |
Web1 | 192.168.0.10 | 81 | www1.kt.com/www2.kt.com |
Web2 | 192.168.0.20 | 82 | www3.kt.com/www4.kt.com |
添加squid系统用户和组
[root@zzh /]# groupadd squid
[root@zzh /]# useradd squid -g squid -s /sbin/nologin
设置权限
[root@zzh /]# chown -R squid.squid /usr/local/squid/var/
[root@zzh /]# chmod -R 775 /usr/local/squid/
编译安装
[root@zzh squid-3.0.STABLE19]# ./configure --prefix=/usr/local/squid --enable-arp-acl --enable-linux-netfilter --enable-auth --disable-internal-dns
make && make install
详细配置选项说明见手册
--enable-arp-acl | 使用非标准的函数接口来执行ARP访问控制列表,默认被禁止,在linux或solaris可能用的上这功能 |
--enable-linux-netfilter | 使用HTTP拦截功能,那么就激活该选项 |
--enable-auth= | 支持哪种验证机制:basic、digest、ntlm,假如不带参数选项编译进程将增加对所有验证机制的支持 |
--disable-internal-dns | 源码含两个不同的DNS解决方案内部的和外部的,内部查询是默认的,该选项是禁止内部功能 |
修改squid配置文件
[root@zzh /]# vim /usr/local/squid/etc/squid.conf
注意:一定要注意2.5和2.6以后的版本配置反向代理定义字段是有一些区别
OPTIONS FOR AUTHENTICATION
cache_peer 192.168.0.10 parent 81 0 no-query originserver weight=1 name=a | 指定后端web服务器IP和端口80,weight设置权重 |
cache_peer 192.168.0.20 parent 82 0 no-query originserver weight=1 name=b | 指定记录名为b,下面会定义 |
cache_peer_domain a www1.kt.com www2.kt.com | 根据上面的设置定义a所指向的域名 |
cache_peer_domain b www3.kt.com www4.kt.com | 意思就是访问www3.kt.com指向192.168.0.20 |
ACCESS CONTROLS
acl all src 0.0.0.0/0.0.0.0 | 定义all访问控制列表,内容为所有客户端 |
http_access allow all | 对定义的all设置,允许所有客户访问,注意:位置很重要 |
NETWORK OPTIONS
http_port 80 vhost | 设置squid监听端口,vhost是支持虚拟主机 |
MEMORY CACHE OPTIONS
cache_mem 512 MB | 设置高速缓存为512MB,一般为实际内存的1/3 |
maximum_object_size_in_memory 512 KB | 如果超过这个设置的值就不再内存中缓存而存入IO中 |
DISK CACHE OPTIONS
cache_dir ufs /usr/local/squid/var/cache 10240 16 256 | 硬盘缓存为10G,一级子目录16个,注意:依照上面创建的目录设置 |
maximum_object_size 1024 KB | 单个文件最大缓存大小,超过这个大小将不缓存 |
cache_swap_low 80 | 最低缓存百分比,就是cache_mem所设置值的百分比 |
cache_swap_high 100 | 最高缓存比,缓冲容量达到所设百分比值时开始删除缓冲数据 |
LOGFILE OPTIONS
access_log /usr/local/squid/var/logs/access.log | 设置访问日志,注意:依照上面创建的目录设置 |
cache_log /usr/local/squid/var/logs/cache.log | 设置缓存日志,去掉注释 |
cache_store_log /usr/local/squid/var/logs/store.log | 设置网页缓存日志 |
emulate_httpd_log on | 使Squid按照Web服务器的格式创建访问记录,Web访问记录分析程序需要 |
ADMINISTRATIVE PARAMETERS
cache_effective_user squid | 设置squid进程所有者,去掉注释 |
cache_effective_group squid | 设置squid进程所属组,去掉注释 |
TIMEOUTS
half_closed_clients off | 一旦从客户端返回no more data to read的信息,squid就立即关闭该连接 |
ICP OPTIONS
icp_port 3130 | 这是squint直接通信的端口,默认这个端口就是开着的 |
启动服务
[root@zzh /]# /usr/local/squid/sbin/squid -k parse | 检查一下配置文件 |
[root@zzh /]# /usr/local/squid/sbin/squid -zX | 初始化服务 |
[root@zzh /]# /usr/local/squid/sbin/squid -sD | 启动squid服务 |
[root@zzh /]# /usr/local/squid/sbin/squid -k shutdown | 关闭服务器,也可以用interrupt强制杀死服务 |
DNS服务器配置
让客户访问的www1.kt.com、www2.kt.com、www3.kt.com、www4.kt.com域名都指向192.168.0.100Squid服务器
[root@zzh /]# vim /etc/named.conf
options {
directory "/var/named";
};
zone "kt.com" IN {
type master;
file "kt.com.txt";
};
[root@zzh /]# vim /var/named/kt.com.txt
$TTL 86400
@ IN SOA zzh.kt.com. root.kt.com. (
2009101001;serial
28800;refresh
14400;retry
3600000;expire
86400 );minimum
@ IN NS zzh.vf.com.
www1 IN A 192.168.0.100
www2 IN A 192.168.0.100
www3 IN A 192.168.0.100
www4 IN A 192.168.0.100
客户端配置
客户端DNS设置为上面配置的DNS服务器,也可以在hosts文件添加下面字段都可以
- 标签:
-
其他
您可能感兴趣的新闻 换一批
热门文章
现在下载,可享30天免费试用