5.3.2squid的相关配置选项
设置squid.conf中的相关选项,如下所示:
http_port 3218
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
说明:
1.http_port 3128
在本例中,我们假设squid的HTTP监听端口为3128,即squid缺省设置值。然后,把所有来自于客户端web请求的包(即目标端口为80)重定向到3128端口。
2.httpd_accel_host virtual
httpd_accel_port 80
这两个选项本来是用来定义squid加速模式的。在这里我们用virtual来指定为虚拟主机模式。80端口为要加速的请求端口。采用这种模式时,squid就取消了缓存及ICP功能,假如你需要这些功能,这必须设置httpd_accel_with_proxy选项。
3.httpd_accel_with_proxy on
该选项在透明代理模式下是必须设置成on的。在该模式下,squid既是web请求的加速器,又是缓存代理服务器。
4.httpd_accel_uses_host_header on
在透明代理模式下,如果你想让你代理服务器的缓存功能正确工作的话,你必须将该选项设为on。设为on时,squid会把存储的对象加上主机名而不是ip地址作为索引。这一点在你想建立代理服务器阵列时显得尤为重要。
1. Squid反向代理单个后台WEB服务器
A、如果WEB服务器和反向代理服务器是两台单独的机器(一般的反向代理应该有两块网卡分别连接了内外部网络)。那么,应该修改下面的内容来设置反向代理服务。
http_port 80 # squid监听的端口
httpd_accel_host 192.168.0.100 # 内部WEB服务器的IP地址
httpd_accel_port 80 # WEB服务器的IP地址
httpd_accel_single_host on # 转发为缓冲的请求到一台单独的机器
httpd_accel_with_proxy on #
httpd_accel_uses_host_header off
B、如果WEB服务器和反向代理服务器是同一台机器。那么,应该设置WEB服务器的监听端口为非80端口(比如:81端口)。要修改的内容如下:
http_port 80 # squid监听的端口
httpd_accel_host localhost # 内部WEB服务器的IP地址
httpd_accel_port 81 # WEB服务器的IP地址
httpd_accel_single_host on # 转发为缓冲的请求到一台单独的机器
httpd_accel_with_proxy on #
httpd_accel_uses_host_header off
下面解释一下配置指令。
http_port 80
选项 http_port 指定squid监听HTTP请求的端口,一般都设置成80端口,这样使用户感觉不到反向代理的存在,就像访问真正的WEB服务器一样。
httpd_accel_host 192.168.0.100 和 httpd_accel_port 80
选项httpd_accel_host 和 httpd_accel_port 指定WEB服务器的IP地址和端口号,可以根据自己的WEB服务器的实际情况而定。
httpd_accel_single_host on
选项httpd_accel_single_host 为on 时,squid被设置成仅对单一的web服务器作反向代理。不考虑HTTP头信息,Squid转发所有的为被缓冲的页面请求到这个web服务器。如果squid需要做多个web服务器反向代理,必须将此选项设置为off,并且使用转向器或者DNS去映射请求到合适的后台WEB服务器。
httpd_accel_with_proxy on
如果希望squid既作反向代理服务器又作本地机器的上网代理,需要将httpd_accel_with_proxy 改为 on,默认情况下是off
httpd_accel_uses_host_header off
在HTTP协议1.1中,HTTP请求包括一个主机头信息,指定URL的主机名或者主机的IP地址。这个选项可以用来完成多个后台WEB服务器的反向代理功能。
2. Squid反向代理多个后台WEB服务器
我们可以用Squid反向代理多个后台WEB服务器。例如:我们可以配置squid同时反向代理www.xxx.com, www.yyy.com, www.zzz.com三个后台WEB服务器,
Squid的配置如下:
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_single_host off
httpd_accel_uses_host_header on
注意:编译Squid时需激活Internal DNS选项: --disable-internal-dns
然后设置设置反响代理需要的域名解析(加入hosts)如下:
www.xxx.com 111.222.333.444
www.yyy.com 111.222.333.444
www.zzz.com 111.222.333.444
使三个域名都指向反向代理服务器的IP地址111.222.333.444。
下面设置反向代理所需要的DNS入口信息(即设置内部DNS,仅仅是squid在内部使用,Internet用户不可见)。有两种方法可以设置内部DNS,使用内部DNS服务器来解析或者使用/etc/hosts文件来实现。
使用内部DNS服务器的资源记录如下:
www.xxx.com IN A 192.168.0.101
www.yyy.com IN A 192.168.0.102
www.zzz.com IN A 192.168.0.103
如果使用/etc/hosts文件来实现内部DNS(编译时应使用disable internal dns选项),编辑/etc/hosts文件添加如下条目:
192.168.0.101 www.xxx.com
192.168.0.102 www.yyy.com
192.168.0.103 www.zzz.com
在局域网通过透明代理访问外部的web服务器时,
在web服务器端,
通过header HTTP_X_FORWARDED_FOR 可以知道代理服务器的服务器名以及端口,
通过HTTP_VIA可以知道客户的内部ip,这会带来一些安全问题,并且某些论坛会发现用的是代理访问,
怎么让squid隐藏这些信息呢.
通过研究squid的源代码,发现在/etc/squid/squid.conf中添加2行:
header_access Via deny all
header_access X-Forwarded-For deny all
就可以把它关闭
要去掉其他的header,也可以照此操作
分享到:
相关推荐
编辑Squid配置文件`/etc/squid/squid.conf`,添加透明代理设置。确保开启`transparent_proxy`选项,并配置监听端口和网关: ```conf http_port 3128 transparent acl localnet src 0.0.0.0/0 # 用你的网络范围替换 ...
### Squid 透明代理的实现与配置 #### 一、Squid 透明代理概述 透明代理是一种代理服务器的工作模式,在这种模式下,客户端无需进行任何配置就能通过代理服务器访问互联网资源。Squid 作为一款广泛使用的高性能...
### Squid 代理服务器的架设过程:包括认证、透明代理与行为管理 #### Squid 代理概述 Squid 是一款广泛应用于 Linux 系统中的高性能代理缓存服务器,它能够有效地提升网络访问速度、降低带宽消耗,并提供安全过滤...
基于 RedHat Linux 9.0 的 Squid 和 iptables 透明代理服务器搭建 本文档详细介绍了在 RedHat Linux 9.0 环境下使用 Squid 和 iptables 搭建透明代理服务器的过程。透明代理服务器可以提供高速、支持多协议的代理...
Squid缓存代理服务器的安装与配置(普通代理 透明代理 反向代理) Squid缓存代理服务器是一种流行的代理服务器和Web缓存服务器软件,广泛应用于提高Web服务器速度、缓存万维网、域名系统和其他网络搜索、帮助网络...
6. **透明代理**:在一些场景下,你可能需要Squid作为一个透明代理,这意味着客户端无需任何配置就能通过Squid。这通常通过在网络设备上设置端口镜像或SNAT规则实现。 7. **故障排查**:在实验过程中,你可能遇到...
squid的配置说明 squid:一款在linux下的代理服务器软件 功能相当强大
6.Squid 其他Squid还有其他高级功能,如透明代理、缓存管理和负载均衡。这些可以通过修改配置文件实现。 7.Squid.conf 配置实例一个简单的Squid配置示例可能包含允许所有内部IP访问互联网的规则: ```bash acl ...
透明代理服务器搭建(Linux 搭建 Squid 代理) 透明代理服务器是一种特殊的代理服务器,它可以在不需要客户端进行任何配置的情况下,自动将 HTTP 请求转发到代理服务器上。今天,我们将学习如何在 Linux 环境中搭建...
7. **透明代理**:透明代理是指客户端无需修改网络设置即可使用代理,Squid 可以配置为透明代理,实现对网络流量的无感知监控和控制。 8. **反向代理**:Squid 也可用作反向代理,将客户端请求转发到特定的后端...
Linux Squid管理界面是针对Squid网络代理服务器的一个重要工具,它提供了用户友好的图形化界面,使得管理员能够更加方便地管理和配置Squid。Squid是一款广泛使用的开源缓存代理软件,用于提高网络访问速度并降低...
包含了一份名为"**JavaApk源码说明.txt**"的文档,可能是对Squidb在Java环境下的应用进行了简要说明,还有一份"**下载更多打包源码~.url**"的链接,暗示着可能存在更多的Squidb相关示例或源码可供下载学习。...
Squid 的命令行选项为管理员提供了丰富的工具来管理和调试 Squid 代理服务器。以下是部分常用及重要的命令行选项: 1. **-a port** - **功能**:指定 Squid HTTP 服务的新端口号。 - **作用**:此选项用于覆盖 `...
接着,配置Squid的主要文件`/etc/squid/squid.conf`,这是一个包含了各种选项和规则的文本文件,如监听端口、缓存目录、访问控制列表等。正确配置此文件是确保Squid正常运行的关键。 Squid的访问控制功能允许管理员...
2. **内容过滤**:Squid可以设置规则来限制或阻止特定类型的网络流量,如广告、恶意软件或非工作相关的网站,这对于企业网络管理和家庭网络安全非常有用。 3. **访问控制**:通过配置访问控制列表(ACL),Squid...
- **Squid互通配置**:通过`visible_hostname`、`hostname_aliases`等选项配置Squid间的通信参数。 - **ICP配置**:配置Squid之间的交互协议,包括`icp_port`、`htcp_port`等选项。 - 示例配置: ```squid ...
如果看到相关的TCP连接,说明服务已经正常启动。 7. **自动启动配置**: 为了使SQUID在系统启动时自动启动,可以在 `/etc/rc.tcpip` 文件中添加启动脚本。添加两行,分别用于启动和停止SQUID服务,例如: ``` # ...
5.1 squid命令行选项 5.2 对配置文件查错 5.3 初始化cache目录 5.4 在终端窗口里测试squid 5.5 将squid作为服务进程运行 5.5.1 squid_start脚本 5.6 启动脚本 5.6.1 /etc/rc.local 5.6.2 init.d和rc.d ...