实现通过特定设备对特定的网址访问加速
使用squid 正向代理 实现,区别于反向代理,两者区别的根本在于作为中转的服务器在一个完整的请求中是代表客户端还是代表服务器。
服务端设置
1.安装程序包(推荐 Centos 6.8 7.2)
sudo yum update sudo yum -y install squid
2.关闭干扰程序
chkconfig --level 2345 postfix off chkconfig --level 2345 sendmail off
3.设置缓存目录(建议设置大一点的)
mkdir -p /var/cache/squid chown -R squid:squid / /var/cache/squid #chmod -R 777 /var/cache/squid
#不到万不得已 不要设置 777
4.启动测试
squid -z #检查配置文件 service squid restart
#centos 6
systemctl restart squid.service
#centos 7
chkconfig --level 2345 squid on
经过以上几个步骤 如果没有端口冲突 可以确定 squid 启动没有问题。说明squid 的启动环境OK,下面将对我们的需求做指定调整
配置文件:
1 acl xxx-v-szzb dst 127.0.0.0/8 0.0.0.0/32 ::1 2 acl SSL_ports port 443 3 acl Safe_ports port 80 # http 4 acl Safe_ports port 21 # ftp 5 acl Safe_ports port 443 # https 6 acl Safe_ports port 70 # gopher 7 acl Safe_ports port 210 # wais 8 acl Safe_ports port 1025-65535 # unregistered ports 9 acl Safe_ports port 280 # http-mgmt 10 acl Safe_ports port 488 # gss-http 11 acl Safe_ports port 591 # filemaker 12 acl Safe_ports port 777 # multiling http 13 acl CONNECT method CONNECT 14 15 http_access allow manager xxx-v-szzb 16 http_access deny manager 17 http_access deny !Safe_ports 18 http_access deny CONNECT !SSL_ports 19 #http_access allow all 20 #acl http proto HTTP 21 acl good_domain dstdomain .salesforce.com .force.com .ip508.com 22 http_access allow manager good_domain 23 http_access deny !good_domain 24 25 http_port 80 26 coredump_dir /app/squid/coredump_dir1 27 refresh_pattern ^ftp: 1440 20% 10080 28 refresh_pattern ^gopher: 1440 0% 1440 29 refresh_pattern -i (/cgi-bin/|?) 0 0% 0 30 refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880 31 refresh_pattern . 0 20% 4320 32 strip_query_terms off 33 visible_hostname ss.72blog.com 34 cache_store_log none 35 cache_access_log none 36 cache_mem 512 MB 37 cache_dir aufs /app/squid/cache_dir1 5000 128 128 38 cache_swap_low 90 39 cache_swap_high 95 40 maximum_object_size 128 MB 41 maximum_object_size_in_memory 128 MB 42 dns_nameservers 10.0.1.1 10.0.1.2 43 client_lifetime 1 minutes 44 half_closed_clients off
不可照搬,有以下几行需要自定义
1/15:两行的主机名要是 squid所在设备的主机名
2~12 :设置接受的代理端口
13~30:落实上述端口的设置,不在端口类的,不做代理
21~23:设置代理的目的域名,不在范围的目的域名不做代理,这里配置了三个,【.ip508.com用来测试代理是否生效的(可以返回客户端IP)】
25:设置端口
26~40:在不清楚意义的前提下,不要修改,【26/37 缓存目录需要修改】
客户端设置
不可在IE设置全局,因为IE浏览器设置后导致整个操作系统全局访问被设置
Chrome
1.快捷方式设置
直接找到chrome 的快捷方式加上启动配置
"C:Program Files (x86)GoogleChromeApplicationchrome.exe" #这是原配置 "C:Program Files (x86)GoogleChromeApplicationchrome.exe" --proxy-server="172.31.2.35:80" #这是新配置 加上 --proxy-server="172.31.1.135:80"
但是这样配置的结果就是导致 chrome 被全局设置了,chrome 只能访问 squid 配置文件 21 行配置的地址。
2.插件配置
安装插件:Proxy Switchy!
配置插件
配置规则
选择自动切换模式,这样只有特定的地址才会走代理,而服务端只能代理这些特定的地址。