Squid 搭建正向代理服务器

Squid 是一款缓存代理服务器软件,广泛用于网站的负载均衡架构中,常见的缓存服务器还有varnish、ATS等。

正向代理服务器可满足内网仅有一台服务器可以上网,而要供内网所有机器上网的需求,也可以用于爬虫的代理访问。在实践中我将Squid作为爬虫代理服务器,实现了多IP切换的功能,将在后续文章中记录实现过程。

安装

系统环境: CentOS 7.0
Squid版本:3.5.20

  1. 源代码安装

到官方网站 http://www.squid-cache.org/Versions/ 查找版本号,找到下载链接,以v3.5.20为例,安装步骤如下:


1

2

3

4

5

6


cd /tmp

wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.20.tar.gz

tar xzf squid-3.5.20.tar.gz

cd squid-3.5.20

./configure --with-MYOPTION --with-MYOPTION2 etc # 具体参数请参考官方文档

make && make install

更多配置详情参考: http://wiki.squid-cache.org/SquidFaq/CompilingSquid

  1. 包管理安装

centos 用 sudo yum install squid 即可完成安装。

配置

配置文件位置在 /etc/squid/squid.conf ,修改默认配置文件:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83


#

# Recommended minimum configuration:

#

# Example rule allowing access from your local networks.

# Adapt to list your (internal) IP networks from where browsing

# should be allowed

# 内网控制,按需修改

acl localnet src 10.0.0.0/8 # RFC1918 possible internal network

acl localnet src 172.16.0.0/12 # RFC1918 possible internal network

acl localnet src 192.168.0.0/16 # RFC1918 possible internal network

acl localnet src fc00::/7 # RFC 4193 local private network range

acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines

# 配置可访问的端口

acl SSL_ports port 443

acl Safe_ports port 80 # http

acl Safe_ports port 21 # ftp

acl Safe_ports port 443 # https

acl Safe_ports port 70 # gopher

acl Safe_ports port 210 # wais

acl Safe_ports port 1025-65535 # unregistered ports

acl Safe_ports port 280 # http-mgmt

acl Safe_ports port 488 # gss-http

acl Safe_ports port 591 # filemaker

acl Safe_ports port 777 # multiling http

acl CONNECT method CONNECT

#

# Recommended minimum Access Permission configuration:

#

# Deny requests to certain unsafe ports

# 拒绝其他非安全端口的访问

http_access deny !Safe_ports

# Deny CONNECT to other than secure SSL ports

# 拒绝443以外的端口访问

http_access deny CONNECT !SSL_ports

# Only allow cachemgr access from localhost

# 允许本机访问

http_access allow localhost manager

http_access deny manager

# We strongly recommend the following be uncommented to protect innocent

# web applications running on the proxy server who think the only

# one who can access services on "localhost" is a local user

#http_access deny to_localhost

#

# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS

#

# Example rule allowing access from your local networks.

# Adapt localnet in the ACL section to list your (internal) IP networks

# from where browsing should be allowed

# 允许内网

http_access allow localnet

http_access allow localhost

# And finally deny all other access to this proxy

# 拒绝所有

http_access deny all

# Squid normally listens to port 3128

# 默认对外端口为3128

http_port 3128

# Uncomment and adjust the following to add a disk cache directory.

# 设置缓存文件位置、cache目录容量(单位M)、一级缓存目录数量、二级缓存目录数量

# 取消注释

cache_dir ufs /var/spool/squid 100 16 256

# Leave coredumps in the first cache dir

coredump_dir /var/spool/squid

#

# Add any of your own refresh_pattern entries above these.

#

refresh_pattern ^ftp: 1440 20% 10080

refresh_pattern ^gopher: 1440 0% 1440

refresh_pattern -i (/cgi-bin/|\?) 0 0% 0

refresh_pattern . 0 20% 4320

按如上设置即可启动squid,本文不详细阐述具体参数的作用,如有需要可查阅相关文档。

文档参考资料:

  1. http://www.squid-cache.org/Doc/
  2. squid中文权威指南

运行

初次配置好或者修改缓存文件位置参数(cache_dir)之后,需要运行squid -z 初始化缓存目录

设置开机启动:systemctl enable squid

运行:systemctl start squid

使用

按上述设置仅支持本机或者网段为10.0.0.0/8、172.16.0.0/12、192.168.0.0/16等内网访问,可根据实际情况增加控制参数,或者将文件中http_access deny all 改为 http_access allow all即可支持所有网段访问。

更改浏览器中代理服务器设置,以火狐浏览器为例,填写相应的squid服务器ip和端口号。

浏览器代理设置

访问http://httpbin.org/ip检测ip地址


1

2

3


{

"origin": "182.xxx.xxx.148, 139.xxx.xxx.66"

}

返回数据中有2个ip,第一个为本机的源ip,第二个为squid代理服务器ip,说明正向代理服务器搭建成功。

pythonsquidproxy

原文地址:https://www.cnblogs.com/zafu/p/8125901.html

时间: 2024-07-30 15:46:51

Squid 搭建正向代理服务器的相关文章

squid搭建正向代理服务器----让你浏览速度快如闪电

Squid 简介 Squid是比较知名的代理软件,不仅可以做正向代理,又可以做反向代理. 当作为正向代理时,Squid后面是客户端,客户端想上网不管什么网都得经过Squid. 当一个用户(客户端)想要请求一个主页时,它向Squid发出一个申请,要Squid替它请求,然后Squid 连接用户要请求的网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户请求同样的页面时,Squid把保存的备份立即传给用户,使用户觉得速度相当快.使用正向代理时,客户端需要做一些设置,才能实现,也就是平时我

Nginx系列-10.采用Nginx搭建正向代理服务

Nginx系列-10.采用Nginx搭建正向代理服务 目录 - Nginx系列 Nginx系列-1.Linux下安装Nginx Nginx系列-2.配置LNMP(Linux.Nginx.MySQL.PHP)架构 Nginx系列-3.配置Nginx虚拟主机 Nginx系列-4.Nginx日志配置及日志切割 Nginx系列-5.配置Nginx的防盗链 Nginx系列-6.配置Nginx的HTTPS Nginx系列-7.配置Nginx使用uwsgi支持web.py框架 Nginx系列-8.配置Ngin

实践出真知——基于squid实现正向代理实践

实践出真知--基于squid实现正向代理实践 前言 ? 俗话说得好:时间是治愈一切伤口的良药,实践是检验真理的唯一标准!本文将结合代理服务器的基本原理,进行基于squid软件实现传统(标准)代理(正向代理)以及透明代理的实例演示. 先说说squid是个啥 ? 避(kai)免(ge)被(wan)喷(xiao),还是介绍一下什么是squid吧. squid的概念 ? squid是一种用来缓存Internet数据的软件.用于接受来自客户端需要下载对象(object)的请求并适当的处理这些请求.也就是说

Nginx搭建反向代理服务器过程详解 - Windows

本文主要是Nginx做一个简单的反向服务器代理和静态文件缓存. 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器 我们就开始动手吧. 1. Vistudio 创建两个简单的 WebApplication (Web Forms),一个叫WebApplication1,一个叫 WebApplication2. 为了区别

Linux网络服务--LAMP+Nginx+Squid搭建web集群

一.         项目名称         LAMP+Nginx+Squid搭建web集群环境 二.         项目拓扑 三.         项目描述 3.1 项目环境 某部队为了满足信息化政治工作建设需要,用以丰富官兵日常生活内容,活化教育形式,更好的建设部队人文环境,准备架设部队内部的网站服务器,并申请使用军内公网IP:1.1.1.1 基于以上情况为该部提出以下解决方案.   3.2 实施方案 3.2.1  服务器操作系统与软件版本选择 操作系统选择RedHat企业版5.10:

如何搭建web服务器 使用Nginx搭建反向代理服务器

转载   如何搭建web服务器 使用Nginx搭建反向代理服务器 :   http://blog.csdn.net/w13770269691/article/details/6977727 引言:最近公司有台服务器遭受DDOS攻击,流量在70M以上,由于服务器硬件配置较高所以不需要DDOS硬件防火 墙.但我们要知道,IDC机房是肯定不允许这种流量一直处于这么高的,因为没法具体知道后面陆续攻击的流量会有多大,如果流量过大就会导致整个IDC网络 瘫痪.我们都知道北方的数据中心和南方的数据中心从带宽出

正向代理服务器,反向代理服务器

1.正向代理服务器,就是你们平时范强用的,用户输入任意网址请求代理服务器,代理服务器根据用户的请求网址,给用户网址信息. 2.反向代理服务器,一般是做负载或者隐藏真正服务器用的,用户访问一个固定的网址,接受这个请求的是反向代理服务器,反向代理服务器根据自己的策略去真正的服务器获取资源,给用户网址信息,用户感觉不到反向代理服务器的存在,这里反向代理服务器是处理真正服务器策略的.

基于tinyproxy搭建yum代理服务器

在我们实际的工作当中,经常会遇到这种情况,我们对线上服务器进行操作时是通过跳板机来进行的,出于安全性及投入资金来考虑非必要情况下除跳板机以外的服务器是没有内网ip的,所以当我们位于内网的服务器需要使用yum安装软件包时就遇到了不能连接网络的问题,我们可以通过部署基于Tinyproxy的http代理来用作yum代理,操作如下: 1.首先我们还是新建了一个名为TInyproxy的docker容器,新建容器后我们发现我们并没有ping命令,所以需要安装initscripts包 [[email prot

搭建MySQL代理服务器实现读写分离+主从同步

实验需求: 1.配置2台MySQL服务器(192.168.100.2,192.168.100.3)+1台代理服务器(192.168.100.1),实现MySQL代理的读写分离. 2.用户只需要访问MySQL代理服务器,实际的SQL查询.写入操作交给后台的2台MySQL服务器来完成. 3.2台MySQL服务器实现主从同步,其中Master服务器允许SQL查询.写入,Slave服务器只允许SQL查询. 一 .MASTER数据库服务器(192.168.100.2)的配置 1.安装软件包(本实验采用My