• 代理缓存服务

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

Squid服务程序具有配置简单、效率高、功能丰富等特点,它能支持HTTP、FTP、SSL等多种协议的数据缓存,可以基于访问控制列表(ACL)和访问权限列表(ARL)执行内容过滤与权限管理功能,还可以基于多种条件禁止用户访问存在威胁或不适宜的网站资源,因此可以保护企业内网的安全,提升用户的网络体验,帮助节省网络带宽。

由于缓存代理服务不但会消耗服务器较多的CPU计算性能、内存以及硬盘等硬件资源,同时还需要较大的网络带宽来保障数据的传输效率,由此会造成较大的网络带宽开销。因此国内很多IDC或CDN服务提供商会将缓存代理节点服务器放置在二三线城市以降低运营成本。

在使用Squid服务程序为用户提供缓存代理服务时,具有正向代理模式和反向代理模式之分。

正向代理模式,是指让用户通过Squid服务程序获取网站页面等资源,以及基于访问控制列表(ACL)功能对用户访问网站行为进行限制,在具体的服务方式上又分为标准代理模式与透明代理模式。

标准正向代理模式是把网站数据缓存到服务器本地,提高数据资源被再次访问时的效率,但是用户在上网时必须在浏览器等软件中填写代理服务器的IP地址与端口号信息,否则默认不使用代理服务。

 透明正向代理模式的作用与标准正向代理模式基本相同,区别是用户不需要手动指定代理服务器的IP地址与端口号,所以这种代理服务对于用户来讲是相对透明的。

使用Squid服务程序提供正向代理服务的拓扑图

局域网内的主机如果想要访问外网,则必须要通过Squid服务器提供的代理才行,这样当Squid服务器接收到用户的指令后会向外部发出请求,然后将接收到的数据交还给发出指令的那个用户,从而实现了用户的代理上网需求。

反向代理模式是指让多台节点主机反向缓存网站数据,从而加快用户访问速度。

使用Squid服务程序提供反向代理服务的拓扑图

总结
        正向代理模式一般用于企业局域网之中,让企业用户统一地通过Squid服务访问互联网资源,这样不仅可以在一定程度上减少公网带宽的开销,而且还能对用户访问的网站内容进行监管限制,一旦内网用户访问的网站内容与禁止规则相匹配,就会自动屏蔽网站。
        反向代理模式一般是为大中型网站提供缓存服务的,它把网站中的静态资源保存在国内多个节点机房中,当有用户发起静态资源的访问请求时,可以就近为用户分配节点并传输资源,因此在大中型网站中得到了普遍应用。

配置Squid服务程序

主机名称

操作系统

IP地址

Squid服务器

RHEL8

内网卡:192.168.10.10

外网卡:桥接DHCP模式

客户端

RHEL 8

192.168.10.20

客户端

Windows 7

192.168.10.50

服务配置

在虚拟机中增加一个网卡,宣威桥接模式

[root@localhost ~]# nm-connection-editor
[root@localhost ~]# nmcli connection up ens192
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)
[root@localhost ~]# ping www.baidu.com
PING www.a.shifen.com (180.101.49.11) 56(84) bytes of data.
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=1 ttl=52 time=110 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=2 ttl=52 time=14.9 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=3 ttl=52 time=15.4 ms
^C
--- www.a.shifen.com ping statistics ---
4 packets transmitted, 3 received, 25% packet loss, time 9ms
rtt min/avg/max/mdev = 14.854/46.717/109.889/44.670 ms
[root@localhost ~]#
[root@localhost ~]# ping 192.168.10.20
PING 192.168.10.20 (192.168.10.20) 56(84) bytes of data.
64 bytes from 192.168.10.20: icmp_seq=1 ttl=64 time=2.01 ms
64 bytes from 192.168.10.20: icmp_seq=2 ttl=64 time=1.40 ms
64 bytes from 192.168.10.20: icmp_seq=3 ttl=64 time=0.828 ms
64 bytes from 192.168.10.20: icmp_seq=4 ttl=64 time=0.992 ms
^C
--- 192.168.10.20 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 9ms
rtt min/avg/max/mdev = 0.828/1.305/2.006/0.456 ms
[root@localhost ~]#

安装 squid 服务

[root@localhost ~]# dnf install squid
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 0:40:22 ago on Tue 12 Oct 2021 01:40:25 PM CST.
Dependencies resolved.
============================================================================================================================================
Package                         Arch                   Version                                             Repository                 Size
============================================================================================================================================
Installing:
squid                           x86_64                 7:4.4-4.module+el8+2479+dae5d0d3                    AppStream                 3.6 M
Installing dependencies:
libecap                         x86_64                 1.0.1-1.module+el8+2479+dae5d0d3                    AppStream                  29 k
perl-Digest-SHA                 x86_64                 1:6.02-1.el8                                        AppStream                  66 k
Enabling module streams:
squid                                                  4                                                                                  Transaction Summary
============================================================================================================================================
Install  3 PackagesTotal size: 3.7 M
Installed size: 13 M
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transactionPreparing        :                                                                                                                    1/1Installing       : perl-Digest-SHA-1:6.02-1.el8.x86_64                                                                                1/3Installing       : libecap-1.0.1-1.module+el8+2479+dae5d0d3.x86_64                                                                    2/3Running scriptlet: libecap-1.0.1-1.module+el8+2479+dae5d0d3.x86_64                                                                    2/3Running scriptlet: squid-7:4.4-4.module+el8+2479+dae5d0d3.x86_64                                                                      3/3Installing       : squid-7:4.4-4.module+el8+2479+dae5d0d3.x86_64                                                                      3/3Running scriptlet: squid-7:4.4-4.module+el8+2479+dae5d0d3.x86_64                                                                      3/3Verifying        : libecap-1.0.1-1.module+el8+2479+dae5d0d3.x86_64                                                                    1/3Verifying        : perl-Digest-SHA-1:6.02-1.el8.x86_64                                                                                2/3Verifying        : squid-7:4.4-4.module+el8+2479+dae5d0d3.x86_64                                                                      3/3
Installed products updated.Installed:squid-7:4.4-4.module+el8+2479+dae5d0d3.x86_64    libecap-1.0.1-1.module+el8+2479+dae5d0d3.x86_64    perl-Digest-SHA-1:6.02-1.el8.x86_64   Complete!
[root@localhost ~]#[root@localhost ~]# systemctl restart squid
[root@localhost ~]# systemctl enable squid
Created symlink /etc/systemd/system/multi-user.target.wants/squid.service → /usr/lib/systemd/system/squid.service.
[root@localhost ~]# systemctl status squid
● squid.service - Squid caching proxyLoaded: loaded (/usr/lib/systemd/system/squid.service; enabled; vendor preset: disabled)Active: active (running) since Tue 2021-10-12 14:22:32 CST; 22s ago
Main PID: 31541 (squid)Tasks: 3 (limit: 12391)Memory: 24.2MCGroup: /system.slice/squid.service├─31541 /usr/sbin/squid -f /etc/squid/squid.conf├─31546 (squid-1) --kid squid-1 -f /etc/squid/squid.conf└─31550 (logfile-daemon) /var/log/squid/access.logOct 12 14:22:32 MiWiFi-R3G-srv systemd[1]: Starting Squid caching proxy...
Oct 12 14:22:32 MiWiFi-R3G-srv systemd[1]: Started Squid caching proxy.
Oct 12 14:22:32 MiWiFi-R3G-srv squid[31541]: Squid Parent: will start 1 kids
Oct 12 14:22:32 MiWiFi-R3G-srv squid[31541]: Squid Parent: (squid-1) process 31546 started
[root@localhost ~]#[root@localhost ~]# iptables -F
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-service=squid
success
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=3128/tcp
success
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]#

常用的Squid服务程序配置参数以及作用

参数

作用

http_port 3128

监听的端口号

cache_mem 64M

内存缓冲区的大小

cache_dir ufs /var/spool/squid 2000 16 256

硬盘缓冲区的大小

cache_effective_user squid

设置缓存的有效用户

cache_effective_group squid

设置缓存的有效用户组

dns_nameservers IP地址

一般不设置,而是用服务器默认的DNS地址

cache_access_log /var/log/squid/access.log

访问日志文件的保存路径

cache_log /var/log/squid/cache.log

缓存日志文件的保存路径

visible_hostname linuxprobe.com

设置Squid服务器的

squid 安装完成后,客户端既可以代理上网

正向代理

标准正向代理

Squid服务程序软件包在正确安装并启动后,默认就已经可以为用户提供标准正向代理模式服务了,而不再需要单独修改配置文件或者进行其他操作。

标准正向解析模式

[ 客户端 192.168.10.20 ]

要想使用Squid服务程序提供的标准正向代理模式服务,就必须在浏览器中填写服务器的IP地址以及端口号信息。

[ 客户端 192.168.10.50 ]

要想使用Squid服务程序提供的标准正向代理模式服务,就必须在浏览器中填写服务器的IP地址以及端口号信息。

工具 => Internet 选项 => 连接 => 局域网设置

修改Squid默认端口
Squid服务程序默认使用3128、3401与4827等端口号,如果担心有人蹭网,可修改配置文件内的端口 /etc/squid/squid.conf  约62行处 http_port 3128。
[root@localhost ~]# vim /etc/squid/squid.conf
...
- 62 http_port 3128
+ 62 http_port 10000[root@localhost ~]# systemctl restart squid[root@localhost ~]# semanage port -l | grep squid_port_t
squid_port_t                   tcp      3128, 3401, 4827
squid_port_t                   udp      3401, 4827
[root@localhost ~]# semanage port -a -t squid_port_t -p tcp 10000
[root@localhost ~]# semanage port -l | grep squid_port_t
squid_port_t                   tcp      10000, 3128, 3401, 4827
squid_port_t                   udp      3401, 4827
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=10000/tcp
success
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]#

现在将客户端浏览器代理端口改为10000就又可以上网了

ACL访问控制

企业员工一般是通过公司内部的网关服务器来访问互联网,当将Squid服务程序部署为公司网络的网关服务器后,Squid服务程序的访问控制列表(ACL)功能将发挥它的用武之地。它可以根据指定的策略条件来缓存数据或限制用户的访问。

Squid服务程序的ACL是由多个策略规则组成的,它可以根据指定的策略规则来允许或限制访问请求,而且策略规则的匹配顺序与防火墙策略规则一样都是由上至下;在一旦形成匹配之后,则立即执行相应操作并结束匹配过程。

为了避免ACL将所有流量全部禁止或全部放行,起不到预期的访问控制效果,通常会在ACL的最下面写上deny all或者allow all语句,以避免安全隐患。

实验1:只允许IP地址为192.168.10.20的客户端使用服务器上的Squid服务程序提供的代理服务,禁止其余所有的主机代理请求。( 实验与实验之间建议恢复下虚拟机, 避免设置冲突 )

下面的配置文件依然是Squid服务程序的配置文件,但是需要留心配置参数的填写位置。如果写的太靠前,则有些Squid服务程序自身的语句都没有加载完,也会导致策略无效。

[ 服务端 192.168.10.10 ]

[root@localhost ~]# vim /etc/squid/squid.conf
...
+ 29 acl client src 192.168.10.20    #给客户端定义一个别名
30 #
31 # Recommended minimum Access Permission configuration:
32 #
33 # Deny requests to certain unsafe ports
+ 34 http_access allow client   #允许代理上网上网的客户端
+ 35 http_access deny all       #拒绝其他主机的代理请求, 规则执行顺序: 由上到下[root@localhost ~]# systemctl restart squid.service
[root@localhost ~]# systemctl restart squid

上面的配置参数。首先定义了一个名为client的别名。这样当再遇到这个别名时也就意味着与之定义的IP地址了。保存配置文件后重启Squid服务程序,这时由于客户端主机的IP地址不符合我们的允许策略而被禁止使用代理服务,

此时 192.168.10.20 还可以上网; 而 192.168.10.50 无法打开网页

[ 客户端 192.168.10.20 ]

[ 客户端 192.168.10.50 ]

实验2:禁止所有客户端访问网址中包含linux关键词的网站。

Squid服务程序的这种ACL功能模式是比较粗犷暴力的,客户端访问的任何网址中只要包含了某个关键词就会被立即禁止访问,但是这并不影响访问其他网站。

[ 服务端配置 192.168.10.10 ]

[root@localhost ~]# vim /etc/squid/squid.conf
...
28 acl CONNECT method CONNECT
+ 29 acl deny_keyword url_regex -i linux   #定义一个别名deny_keyword 禁止地址中带有 linux 的网站上网
30 #
31 # Recommended minimum Access Permission configuration:
32 #
33 # Deny requests to certain unsafe ports
+ 34 http_access deny deny_keyword
35 http_access deny !Safe_ports
...
[root@localhost ~]# systemctl restart squid
[root@localhost ~]#

定义了一个名为deny_keyword的别名,然后把所有网址带有linux关键词的网站请求统统拒绝掉。

禁止多个关键字需要用空格分隔,例:禁止请求地址种带有 linux 和 baidu 上网

acl deny_keyword url_regex -i linux baidu

[ 客户端访问 ]

实验3:禁止所有客户端访问某个特定的网站。

[ 服务端配置 192.168.10.10 ]

[root@localhost ~]# vim /etc/squid/squid.conf
...
28 acl CONNECT method CONNECT
+ 29 acl deny_url url_regex youku.com
30 #
31 # Recommended minimum Access Permission configuration:
32 #
33 # Deny requests to certain unsafe ports
+ 34 http_access deny deny_url
35 http_access deny !Safe_ports
[root@localhost ~]# systemctl restart squid

[ 客户端访问 ]

实验4:禁止下载带有某些后缀的文件

[ 服务端配置 192.168.10.10 ]

[root@localhost ~]# vim /etc/squid/squid.conf
...
28 acl CONNECT method CONNECT
+ 29 acl badfile urlpath_regex -i \.mp3$ \.rar$
30 #
31 # Recommended minimum Access Permission configuration:
32 #
33 # Deny requests to certain unsafe ports
+ 34 http_access deny badfile
35 http_access deny !Safe_ports[root@localhost ~]# systemctl restart squid

[ 客户端 ] 访问 http://www.linuxcool.com/fefefe.mp3

[ 客户端 ] 访问 https://www.linuxcool.com/fefefe.mp3     对https 未起到拦截作用

透明正向解析模式

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

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

[ 客户端配置 ]

如果此时并没有配置DHCP服务器,可以手动配置客户端主机的网卡参数。

配置客户端 dns 为 192.168.10.10 和 8.8.8.8 和 114.114.114.114 使客户端支持dns解析服务

[root@localhost ~]# nmtui
[root@localhost ~]# nmcli connection up ens160
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)

第一种方法 Firewall Configuration 

firewall 防火墙操作

[ 服务端 ]

[root@MiWiFi-R3G-srv ~]# dnf install firewall-config
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
AppStream                                                                                                   347 kB/s | 3.2 kB     00:00
BaseOS                                                                                                      183 kB/s | 2.7 kB     00:00
Dependencies resolved.
============================================================================================================================================
Package                               Arch                         Version                           Repository                       Size
============================================================================================================================================
Installing:
firewall-config                       noarch                       0.6.3-7.el8                       AppStream                       157 kTransaction Summary
============================================================================================================================================
Install  1 PackageTotal size: 157 k
Installed size: 1.1 M
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transactionPreparing        :                                                                                                                    1/1Installing       : firewall-config-0.6.3-7.el8.noarch                                                                                 1/1Running scriptlet: firewall-config-0.6.3-7.el8.noarch                                                                                 1/1Verifying        : firewall-config-0.6.3-7.el8.noarch                                                                                 1/1
Installed products updated.Installed:firewall-config-0.6.3-7.el8.noarch                                                                                                        Complete!
[root@MiWiFi-R3G-srv ~]#
[root@MiWiFi-R3G-srv ~]# firewall-config

找到 Masquerade => 勾选 Masquerade zone 客户端就可以上网了

第二种操作 iptables 操作 [ RHEL8 系统下实验失败 , 下面先介绍下配置, 后续再看能不能搞定]

既然要让用户在无需过多配置系统的情况下就能使用代理服务,作为运维人员就必须提前将网络配置信息与数据转发功能配置好。

由 SNAT技术完成数据的转发,让客户端主机将数据交给Squid代理服务器,再由后者转发到外网中。

要想让内网中的客户端主机能够访问外网,客户端主机首先要能获取到DNS地址解析服务的数据,这样才能在互联网中找到对应网站的IP地址。

通过iptables命令实现DNS地址解析服务53端口的数据转发功能,并且允许Squid服务器转发IPv4数据包。sysctl -p命令的作用是让转发参数立即生效

[root@localhost ~]# iptables -F
[root@localhost ~]# iptables -t nat -A POSTROUTING -p udp --dport 53 -o eno192 -j MASQUERADE
[root@localhost ~]# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
[root@localhost ~]# sysctl -p
net.ipv4.ip_forward = 1
[root@localhost ~]#

配置Squid配置文件, 只需要在主配置文件中服务器端口号后面追加上transparent单词(意思为“透明的”),然后把第62行的井号(#)注释符删除,设置缓存的保存路径就可以了。保存主配置文件并退出后再使用squid -k parse命令检查主配置文件是否有错误,以及使用squid -z命令对Squid服务程序的透明代理技术进行初始化。

[root@linuxprobe ~]# vim /etc/squid/squid.conf
………………省略部分输出信息………………
58 # Squid normally listens to port 3128
59 http_port 3128 transparent
60
61 # Uncomment and adjust the following to add a disk cache directory.
62 cache_dir ufs /var/spool/squid 100 16 256
63
………………省略部分输出信息………………

在配置妥当并重启Squid服务程序且系统没有提示报错信息后,接下来就可以完成SNAT数据转发功能了。它的原理其实很简单,就是使用iptables防火墙管理命令把所有客户端主机对网站80端口的请求转发至Squid服务器本地的3128端口上。

[root@linuxprobe ~]# iptables -t nat -A PREROUTING  -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
[root@linuxprobe ~]# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eno33554968 -j SNAT --to 您的桥接网卡IP地址
[root@linuxprobe ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
  • 反向代理

反向代理是Squid服务程序的一种重要模式,其原理是把一部分原本向网站源服务器发起的用户请求交给Squid服务器缓存节点来处理。

配置网卡信息,将网卡调节为桥接模式,并将网卡模式切换为自动,配置好后,重启虚拟机

[root@MiWiFi-R3G-srv ~]# nmtui
[root@MiWiFi-R3G-srv ~]# reboot

下面就反向代理该站点

使用Squid服务程序来配置反向代理服务非常简单。首先找到一个网站源服务器的IP地址,然后编辑Squid服务程序的主配置文件,把端口号3128修改为网站源服务器的地址和端口号,此时正向解析服务会被暂停(它不能与反向代理服务同时使用)。然后按照下面的参数形式写入需要反向代理的网站源服务器的IP地址信息,保存退出后重启Squid服务程序。

# vim /etc/squid/squid.conf
61 # Squid normally listens to port 3128
62 #http_port 3128
+ 63 http_port 192.168.31.174:80 vhost     #将端口号改为本机ip地址192.168.31.174(该地址又路由自动分配,请改成自己对应ip地址) , 用户访问端口 80 vhost 虚拟主机
+ 64 cache_peer 39.106.186.179 parent 80 0 originserver  #cache_peer缓存节点 需要缓存的服务器ip39.106.186.179 主服务器端口80 无优先级0  originserver代表原始服务器
65
66 # Uncomment and adjust the following to add a disk cache directory.
67 #cache_dir ufs /var/spool/squid 100 16 256# systemctl restart squid

39.106.186.179 ip为在网上找到没有禁止反向代理功能, 也就是通过域名或ip地址都是可以访问该网站的

设置好后, 再访问下自己的ip地址, 就可以看到反向代理的效果了

LinuxProbe 0x18 使用Squid部署代理缓存服务相关推荐

  1. redhat 7部署squid(代理)服务

    一.服务器端 在部署squid服务之前先确保服务器至少有两张网卡并且已经配置好内外网网卡的网络配置信息 相关配置参考:https://blog.csdn.net/qq_21453783/article ...

  2. Linux运维学习:高级提升(1)——HTTP服务代理缓存加速

    HTTP缓存机制 Web 缓存大致可以分为:数据库缓存.服务器端缓存(代理服务器缓存.CDN 缓存).浏览器缓存. 浏览器缓存也包含很多内容: HTTP 缓存.indexDB.cookie.local ...

  3. 部署Squid代理服务器 —— 反向代理(acl 访问控制 、sarg 日志分析、 Squid反向代理) —— 再续前缘..

    部署Squid代理服务器 -- 反向代理 前言 部署前规划 acl 访问控制 sarg 日志分析 反向代理 前言 部署 Squid 代理服务的正向代理,咱们已经实现 可以参考前文 Squid ---- ...

  4. Squid代理缓存服务器

    一.代理缓存服务器 1.分类 正向代理:部署在企业内部,实现企业内部客户端访问公网加速(ACL.缓存) 传统代理:需在客户端指向正向代理服务器的IP及端口,方可正常使用 透明代理:将正向代理服务器作为 ...

  5. nginx反向代理+缓存开启+url重写+负载均衡(带健康探测)的部署记录

    在日常运维工作中,运维人员会时常使用到nginx的反向代理,负载均衡以及缓存等功能来优化web服务性能. 废话不多说,下面对测试环境下的nginx反向代理+缓存开启+url重写+负载均衡(带健康探测) ...

  6. 缓存加速----Squid传统代理透明代理

    文章目录 前言 一:Squid代理服务概述 1.1:概述 1.2:工作机制 1.3:Squid基本类型 二:环境 三:传统代理试验过程 四:透明代理实验过程 前言 一:Squid代理服务概述 1.1: ...

  7. 信创环境下缓存服务Redis集群部署

    背景 本次项目涉及20+台服务器的部署,技术包括 Nacos 注册中心集群. GateWay 网关服务集群. 达梦8 关系型数据库服务集群. MinIO 分布式文件存储服务集群. Redis 缓存服务 ...

  8. squid反向代理作为web前端内容缓存器及局域网内客户机通过代理服务器上网

    反向代理服务器有两种传输模式: 1.同步模式:(如:squid)用户发起请求,请求立即被转到后端的服务器,于是在浏览器和后端服务器之间就建立了一个连接,在请求完成前这个连接是一直存在的. 2.异步模式 ...

  9. 理论+实验 详解Squid部署--传统代理--透明代理--日志分析--反向代理

    目录 一 缓存代理概述 1.1 Web代理的工作机制 1.2 代理的基本类型 1.3 使用代理的好处 二 Squid安装及运行 2.1 编译安装Squid 3.4.6 2.2 Squid配置文件调整 ...

最新文章

  1. java 数组降序_Java里的数组降序
  2. SpringBoot + Mybatis + Druid + PageHelper 实现多数据源分页
  3. Linux对外连接端口数限制
  4. android中Logcat的TAG过滤
  5. JVM调优常用参数配置
  6. hadoop+spark生态系统操作与指南非影印版_Spark背景知识学习
  7. 基于角色-功能-资源的权限控制模型的设计与实现-引子
  8. 软件工程师所需掌握的“终极技术”是什么?
  9. ruby中正则表达式最小匹配与最大匹配
  10. RestTemplate远程接口调用
  11. 贾俊平统计学思维导图- 第一章 导论
  12. 计算机纸牌游戏攻略,Windows纸牌游戏怎么玩 玩法技巧攻略详解
  13. 怎样用硬盘启动计算机,电脑新增了硬盘,在bios中怎么设置硬盘启动,来看看具体操作步骤...
  14. phonopy制作shengBTE的FORCE_CONSTANTS_2ND
  15. clock()、time()、clock_gettime()和gettimeofday()函数的用法和区别【转】
  16. tomcat 配置域名和ssl证书
  17. Feature Tools:自动特征工程(翻译)
  18. Matlab 调用Optris Pi 450i红外相机direct SDK相关函数摘记
  19. linux修改ipaddr,并保存
  20. vuex 源码分析_vue源码解析之vuex原理

热门文章

  1. 6.4向量空间模型,余弦相似度计算
  2. 人工智能实战项目(python)+多领域实战练手项目
  3. 【PHP】如何搭建PHP本地运行学习环境2022版
  4. 正则表达式判断身份证规格
  5. 通过GooglePlay地区切换实现下载所需的APP
  6. 高性能个人博客系统VanBlog
  7. 笔记本外接显示器后网速变慢解决办法
  8. 华为Atlas200DK硬件--矿大人工智能实验(环境搭建+人像语义分割实现)
  9. 雷达坐标系之间的转换
  10. 初识Matchvs游戏云及SDK接入准备教程(白鹭Egret篇)