该系列文章只是本人的学习笔记,文章中的文字描述提取自《Linux鸟哥私房菜》《Linux运维之道》等书中的重点内容,部分内容是在培训Linux运维时总结的笔记,化繁为简能够在工作中快速复习掌握重点,并不代表个人立场,但转载请加出处,并注明参考文献。

Squid是Linux系统中最为流行的一款高性能代理服务软件,通常用作Web网站的前置缓存服务,能够代替用户向网站服务器请求页面数据并进行缓存.简单来说,Squid服务程序会按照收到的用户请求向网站源服务器请求页面,图片等所需的数据,并将服务器返回的数据存储在运行Squid服务程序的服务器上.当有用户再请求相同的数据时,则可以直接将存储服务器本地的数据交付给用户,这样不仅减少了用户的等待时间,还缓解了网站服务器的负载压力.

配置透明代理

透明二字指的是让用户在没有感知的情况下使用代理服务,这样的好处是一方面不需要用户手动配置代理服务器的信息,进而降低了代理服务的使用门槛,另一方面也可以更隐秘地监督员工的上网行为.

在透明代理模式中,用户无须在浏览器或其他软件中配置代理服务器地址、端口号等信息,而是由DHCP服务器将网络配置信息分配给客户端主机.这样只要用户打开浏览器便会自动使用代理服务了.

以下实验,将配置一个Squid透明代理服务,我们使用10.10.10.20模拟外网,使用win10模拟内网主机.

[主机类型]           [IP地址]             [网卡编号]           [网卡模式]         [作用]

Windows 10           192.168.1.8          eth0                桥接模式           模拟内网

Squid                192.168.1.10         eth0                桥接模式           内网网关
10.10.10.10 eth1 仅主机模式 模拟外网网口 Apache 10.10.10.20 eth0 仅主机模式 模拟web服务器

◆配置Squid网关◆

1.通过Yum仓库安装Squid代理服务

[root@localhost ~]# yum install -y squid
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager.
Package 7:squid-3.5.20-12.el7.x86_64 already installed and latest version
Nothing to do

2.编辑Squid的住配置文件,在合适的位置写入一下参数,开启透明代理服务

[root@localhost ~]# vim /etc/squid/squid.conf

 55 # And finally deny all other access to this proxy
56 http_access deny all
57
58 # Squid normally listens to port 3128
59 http_port 192.168.1.10:3128 transparent #IP地址为网关(Squid)内网IP
60 visible_hostname www.mkdirs.com #自定义主机名,随意
61
62
63 # Uncomment and adjust the following to add a disk cache directory.
64 #cache_dir ufs /var/spool/squid 100 16 256

3.开启Linux的路由转发功能,并使用sysctl强制刷新内核参数

[root@localhost ~]# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
[root@localhost ~]# sysctl -p
[root@localhost ~]# echo "1" > /proc/sys/net/ipv4/ip_forward

4.添加一条SNAT防火墙规则,将所有192.168.1.0/24(内网)的请求全部转发到eth1口的3128端口上.

iptables -t nat -A PREROUTING -i eth0(内网网卡) \
-s 192.168.1.0/24 -p tcp --dport 80 \
-j REDIRECT --to-ports 3128

5.启动Squid服务,并设置为开机自启动

[root@localhost ~]# systemctl restart squid
[root@localhost ~]# systemctl enable squid

◆配置内网客户机◆

route add default gw 192.168.1.10			#添加一条路由记录(指向网关机eth1)

◆外网Web配置◆

1.安装并启动Apache,并启动此处用来模拟外网

yum install -y httpd

systemctl restart httpd

配置反向代理

反向代理服务位于本地web服务器和Internet之间,处理所有对web服务器的请求,组织web服务器和internet的直接通信,这种方式通过降低向web服务器的请求数降低了web服务器的负载.

以下实验,将配置一个Squid反向代理,由于Squid具有静态页面缓存功能,常用作反向代理,减小后端Web主机的压力

[主机类型]           [IP地址]             [网卡编号]           [网卡模式]         [作用]

Windows 10           192.168.1.8          eth0                桥接模式           模拟外网

Squid                192.168.1.10         eth0                桥接模式           外网网口
10.10.10.10 eth1 仅主机模式 内网网口 Apache 10.10.10.20 eth0 仅主机模式 模拟web_1
Apache 10.10.10.30 eth0 仅主机模式 模拟web_2

◆配置两台Web◆

1.配置两台内网服务器Apache并启动,设置开机自启动

[root@localhost ~]# yum install -y httpd
[root@localhost ~]# echo "web *" >/var/www/html/index.html
[root@localhost ~]# systemctl restart httpd

2.两台Apache添加网关,指向网关IP的eth1(10.10.10.10)口,指定网关就是,告诉数据包从哪里可以出去.

[root@localhost ~]# route add default gw 10.10.10.10

◆配置Squid代理◆

1.通过Yum仓库安装Squid代理服务

[root@localhost ~]# yum install -y squid
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager.
Package 7:squid-3.5.20-12.el7.x86_64 already installed and latest version
Nothing to do

2.开启Linux的路由转发功能,并使用sysctl强制刷新内核参数

[root@localhost ~]# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
[root@localhost ~]# sysctl -p
[root@localhost ~]# echo "1" > /proc/sys/net/ipv4/ip_forward

3.编辑Squid主配置文件,在相应的区域中加入以下语句

[root@localhost ~]# vim /etc/squid/squid.conf

 58 # Squid normally listens to port 3128
59
60 http_access allow all #允许所有
61
62 http_port 192.168.1.10:80 vhost #声明外网口地址
63
64 cache_peer 10.10.10.20 parent 80 0 originserver round-robin weight=1 #内网的服务器节点1
65 cache_peer 10.10.10.30 parent 80 0 originserver round-robin weight=1 #内网的服务器节点2
66
67 # Uncomment and adjust the following to add a disk cache directory.
68 #cache_dir ufs /var/spool/squid 100 16 256
69
70 # Leave coredumps in the first cache dir

4.启动Squid服务,并设置为开机自启动

[root@localhost ~]# systemctl restart squid
[root@localhost ~]# systemctl enable squid

常用ACL控制参数

#--------------------------------------------------------
# Squid配置文件常用参数 http_port 3128
http_port 192.168.1.1:80 #80端口只监听内网接口上的请求 cache_mem 512MB #指定非陪多少存储
cache_dir ufs /var/spool/squid 4096 16 256 #指定硬盘缓冲区大小
cache_effective_user squid #指定属主squid
cache_effective_group squid #指定数组squid
dns_nameservers 8.8.8.8 #设置有效DNS服务器地址
visible_hostname www.lyshark.com #设置主机名,必须设置
cache_access_log /var/log/squid/access.log #指定访问记录的日志文件
cache_log /var/log/squid/cache.log #设置缓存日志文件
cache_store_log /var/log/squid/store.log #设置网页缓存日志文件
cache_mgr master@smile.com #管理员邮件
http_access [ allow|deny ] #访问控制列表名称 #--------------------------------------------------------
#拒绝所有客户端请求,例子中的all是用户自定义的 acl all src 0.0.0.0/0.0.0.0
http_access deny all #--------------------------------------------------------
#禁止192.168.1.0/24 网段的客户机上网 acl client src 192.168.1.0/255.255.255.0
http_access deny client #--------------------------------------------------------
#禁止访问域名www.baidu.com的网站 acl baidu dstdomain www.baidu.com
http_access deny baidu #--------------------------------------------------------
#禁止192.168.1.0/24网络的用户在周一到周五的9:00 -13:00 上网 acl client src 192.168.1.0/255.255.255.0
acl badtime time MTWHF 9:00-13:00
http_access deny client badtime #--------------------------------------------------------
#禁止用户下载 *.mp3 *.exe *.zip *.rar 类型的文件 acl badfile urlpath_reregex -i \.mp3$ \.exe$ \.zip$ \.rar$
http_access deny badfile #--------------------------------------------------------
#屏蔽www.baidu.com站点 acl badsite dstdomain -i www.baidu.com
http_access deny badsite #--------------------------------------------------------
#屏蔽包含SEX的URL路径 acl sex url_regex -i SEX
http_access deny sex #--------------------------------------------------------
#禁止访问22,23,25,53,110,119这些危险端口 acl deny_port port 22 23 25 53 110 119
http_access deny deny_port

使用Squid部署代理服务的更多相关文章

  1. Linux基础学习-使用Squid部署代理缓存服务

    使用Squid部署代理缓存服务 Squid是Linux系统中最为流行的一款高性能代理服务软件,通常作为Web网站的前置缓存服务,能够代替用户向网站服务器请求页面数据并进行缓存.Squid服务配置简单. ...

  2. 《Linux就该这么学》培训笔记_ch16_使用Squid部署代理缓存服务

    <Linux就该这么学>培训笔记_ch16_使用Squid部署代理缓存服务 文章最后会post上书本的笔记照片. 文章主要内容: 代理缓存服务 配置Squid服务程序 正向代理 标准正向代 ...

  3. 第16章 使用Squid部署代理缓存服务

    章节概述: 本章节从代理缓存服务的工作原理开始讲起,让读者能够清晰理解正向代理(普通模式.透明模式)与反向代理的作用. 正确的使用Squid服务程序部署代理缓存服务可以有效提升访问静态资源的效率,降低 ...

  4. 虚拟机中Linux环境下使用Squid部署代理缓存服务(及透明传输)

    小知识: 正确的使用Squid服务程序部署代理缓存服务可以有效提升访问静态资源的效率,降低原服务器的负载. 不仅如此,还为读者们添加了对指定IP地址.网页关键词.网址与文件后缀的ACL访问限制功能的实 ...

  5. 使用Squid部署代理缓存服务(标准正向、透明正反向代理)

    正向代理让用户可以通过Squid服务程序获取网站页面等数据,具体工作形式又分为标准代理模式与透明代理模式.标准正向代理模式: 将网站的数据缓存在服务器本地,提高数据资源被再次访问时的效率,但用户必需在 ...

  6. 如何:使用 Visual Studio 中的一键式发布来部署 Web 应用程序项目

    原文: 如何:使用 Visual Studio 中的一键式发布来部署 Web 应用程序项目 本主题介绍如何在以下产品中使用 一键式发布 发布(部署)Web 应用程序项目: Visual Studio ...

  7. Squid 缓存代理服务器的完整配置

    Squid 缓存代理服务器 Squid 的作用 1.通过缓存的方式为用户提供web访问加速 2.对用户的web访问进行过滤控制 缓存代理服务器又分为普通代理服务器,透明代理服务器,和反向代理服务器. ...

  8. 通过VS2017发布.net core程序并使用Web 部署到远程服务器最新教程

    最近一个项目中,为App开发后台接口,技术选型为最新 .net core版本,使用.net core开发web api接口过程中,为了方便app团队成员直接在线调用接口,找了公网上的一台服务器做为ap ...

  9. 通过VS2019使用Web部署发布.net core程序

    服务器:Windows Server2012R2 服务器已安装好IIS 需要启用Web Management Service  与 Web部署代理服务 服务器默认是没有Web部署代理服务的  需要安装 ...

随机推荐

  1. 在WebGrid中做 批量删除操作

    一般的MVC WebGrid都是在每一行中加入 Edit Detail Delete 这些Link 去对每条记录去单独操作. 稍微研究了一下总结一个 做批量删除的办法. 1. 首先是在WebGrid中 ...

  2. 【Web】Nginx 反向代理与负载均衡

    反向代理 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客 ...

  3. c#泛型与其他语言的对比(深入理解c#)

    1.同c++模板的对比: c++模板有点像是发展到极致的宏.他们非常强大,但代价就是代码膨胀和不易理解. 在c++中使用一个模板时,会为那一套特定的模板实参编译代码,好在模板实参本来就在源代码中一样. ...

  4. How to turn on syntax highlighting in osx

    put follow code in ~/.vimrc set ai " auto indenting set history=100 " keep 100 lines of hi ...

  5. trunc()用法和add_months()

    TRUNC函数用于对值进行截断. 用法有两种:TRUNC(NUMBER)表示截断数字,TRUNC(date)表示截断日期. (1)截断数字: 格式:TRUNC(n1,n2),n1表示被截断的数字,n2 ...

  6. Spring框架简介

    1.发明者:Rod Johnson 2.轮子理论推崇者: 2.1 轮子理论:不用重复发明轮子 2.2 IT行业:直接只用写好的代码 3.Spring框架宗旨:不重新发明技术,让原有技术使用起来更加方便 ...

  7. 2018.12.15 spoj Longest Common Substring II(后缀自动机)

    传送门 后缀自动机基础题. 给出10个串求最长公共子串. 我们对其中一个建一个samsamsam,然后用剩下九个去更新范围即可. 代码: #include<bits/stdc++.h> # ...

  8. s5-13 RIP 为什么会 衰败

    DV路由可能遇到的问题 路由环路( routing loop) 计数到无穷问题( Count to infinite) 收敛慢的问题( slow Convergence ) 相信错误的路由信息导致 好 ...

  9. excel2007自定义菜单项学习

    参考: http://club.excelhome.net/thread-1288002-1-1.html http://club.excelhome.net/thread-709306-1-1.ht ...

  10. 安卓修改开机logo

    这里我们是在ubuntu下进行操作我是用root用户登陆的,首先安装netpbm库 执行:apt-get install netpbm 对于Android系统最开始表现logo是在内核当中,所以首先我 ...