squid 3.5 配置正向代理缓存加速

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介:

配置文件如下

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
# 监听127.0.0.1:8080
http_port 127.0.0.1:8080 accel allow-direct
acl manager proto cache_object
http_access allow manager
# 对日志文件和pid文件位置进行设置 
# cache_store_log none 
# cache_access_log /var/log/squid/access.log 
# cache_log /var/log/squid/cache.log 
# pid_filename /var/run/squid.pid 
 
# 取消对代理阵列的支持 
icp_port 8080
 
# 允许所有流量
http_access allow all
 
# 关闭该项,这样就可以显示用户的整个请求内容
strip_query_terms off
 
# 64M内存缓存,2G硬盘做缓存,可自行调整
cache_mem 512 MB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs  /var/spool/squid  10000 16 256  #10G 磁盘缓存 目录下分16个级别,每隔级别分256个目录
 
# swap 性能微调 
half_closed_clients off
maximum_object_size 65536 KB
minimum_object_size 0 KB
 
# 设置内存中最大可缓存的最大文件大小
maximum_object_size_in_memory 512 KB
# 内存和硬盘cache的替换策略
memory_replacement_policy lru
cache_replacement_policy lru
 
# http1.0的vary信息里带有过期时间的话,squid还是不能缓存住。打开此选项提高缓存命中率
vary_ignore_expire on
 
# 合并回源,多个回源流量变成一个回源,这个在大文件时,也比较有用。
collapsed_forwarding on
 
# 一些优化参数
refresh_pattern ^ ftp : 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern (cgi-bin|\?) 0 0% 0
refresh_pattern \.(jpg|png|gif|mp3|xml|html|htm|css|js) 1440 80% 2880 ignore-reload
refresh_pattern ^ /forum/viewthread .php 1440 1000% 1440 ignore-reload
refresh_pattern . 0 20% 4320
refresh_pattern -i .html 1440 90% 129600 reload-into-ims
refresh_pattern -i .shtml 1440 90% 129600 reload-into-ims
refresh_pattern -i .hml 1440 90% 129600 reload-into-ims
refresh_pattern -i .gif 1440 90% 129600 reload-into-ims
refresh_pattern -i .swf 1440 90% 129600 reload-into-ims
refresh_pattern -i .jpg 1440 90% 129600 reload-into-ims
refresh_pattern -i .png 1440 90% 129600 reload-into-ims
refresh_pattern -i .bmp 1440 90% 129600 reload-into-ims
refresh_pattern -i .js 1440 90% 129600 reload-into-ims
 
refresh_pattern -i .css$ 1440    90%     2880    reload-into-ims
refresh_pattern -i .doc$ 1440    50%     2880      ignore-reload
refresh_pattern -i .ppt$ 1440    50%     2880      ignore-reload
refresh_pattern -i .xls$ 1440    50%     2880      ignore-reload
refresh_pattern -i .pdf$ 1440    50%     2880      ignore-reload
refresh_pattern -i .rar$ 1440    50%     2880      ignore-reload
refresh_pattern -i .zip$ 1440    50%     2880      ignore-reload
refresh_pattern -i .txt$ 1440    50%     2880      ignore-reload
 
# 禁止代理识别
via off
forwarded_for off
request_header_access From deny all
request_header_access Server deny all
request_header_access WWW-Authenticate deny all
request_header_access Link deny all
request_header_access Cache-Control deny all
request_header_access Proxy-Connection deny all
request_header_access X-Cache deny all
request_header_access X-Cache-Lookup deny all
request_header_access Via deny all
request_header_access X-Forwarded-For deny all
request_header_access Pragma deny all
request_header_access Keep-Alive deny all

系统内核优化

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
net.ipv6.conf.all.accept_ra = 2
 
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
 
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.ipv4.tcp_max_tw_buckets = 10000
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rmem = 4096        87380   4194304
net.ipv4.tcp_wmem = 4096        16384   4194304
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.netdev_max_backlog = 262144
net.core.somaxconn = 262144
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_fin_timeout = 1
net.ipv4.tcp_keepalive_time = 15
net.ipv4.ip_local_port_range = 1024    65535

最后配置流量转发

1
iptables -t nat -I PREROUTING -i ens3 -s ip1 /32  -p tcp --dport 80 -j REDIRECT --to-port 8080

意思是把本地ens3 网口的请求流量转发到本地8080 端口上,squid 监听的是本地8080

也可以这样写

1
2
3
# 将 对于 80、443 端口的访问 重定向到 3128 端口 </P><P>
iptables -t nat -A PREROUTING -i eth1 -p tcp -s 192.168.0.0 /24  --dport 80 -j DNAT --to  192.168.0.1:3128 
iptables -t nat -A PREROUTING -i eth1 -p tcp -s 192.168.0.0 /24  --dport 443 -j DNAT --to 192.168.0.1:3128

最后这个没试过,慎用













本文转自wks9751CTO博客,原文链接:http://blog.51cto.com/wks97/2051048 ,如需转载请自行联系原作者





相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
2月前
|
存储 缓存 安全
在 Service Worker 中配置缓存策略
Service Worker 是一种可编程的网络代理,允许开发者控制网页如何加载资源。通过在 Service Worker 中配置缓存策略,可以优化应用性能,减少加载时间,提升用户体验。此策略涉及缓存的存储、更新和检索机制。
|
2月前
|
存储 缓存 监控
配置 Webpack 5 持久化缓存时需要注意哪些安全问题?
【10月更文挑战第23天】通过全面、系统地分析和应对安全问题,能够更好地保障 Webpack 5 持久化缓存的安全,为项目的成功构建和运行提供坚实的安全基础。同时,要保持对安全技术的关注和学习,不断提升安全防范能力,以应对日益复杂的安全挑战。
|
3月前
|
存储 缓存 监控
|
3月前
|
存储 缓存 负载均衡
Nginx代理缓存机制
【10月更文挑战第2天】
114 4
|
4月前
|
缓存 监控 负载均衡
在使用CDN时,如何配置缓存规则以优化性能
在使用CDN时,如何配置缓存规则以优化性能
|
3月前
|
缓存 NoSQL 数据处理
原生php实现redis缓存配置和使用方法
通过上述步骤,你可以在PHP项目中配置并使用Redis作为高性能的缓存解决方案。合理利用Redis的各种数据结构和特性,可以有效提升应用的响应速度和数据处理效率。记得在实际应用中根据具体需求选择合适的缓存策略,如设置合理的过期时间,以避免内存过度消耗。
72 0
消息中间件 缓存 监控
172 0
|
17天前
|
存储 缓存 NoSQL
解决Redis缓存数据类型丢失问题
解决Redis缓存数据类型丢失问题
159 85
|
3月前
|
消息中间件 缓存 NoSQL
Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。
【10月更文挑战第4天】Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。随着数据增长,有时需要将 Redis 数据导出以进行分析、备份或迁移。本文详细介绍几种导出方法:1)使用 Redis 命令与重定向;2)利用 Redis 的 RDB 和 AOF 持久化功能;3)借助第三方工具如 `redis-dump`。每种方法均附有示例代码,帮助你轻松完成数据导出任务。无论数据量大小,总有一款适合你。
87 6
|
14天前
|
缓存 监控 NoSQL
Redis经典问题:缓存穿透
本文详细探讨了分布式系统和缓存应用中的经典问题——缓存穿透。缓存穿透是指用户请求的数据在缓存和数据库中都不存在,导致大量请求直接落到数据库上,可能引发数据库崩溃或性能下降。文章介绍了几种有效的解决方案,包括接口层增加校验、缓存空值、使用布隆过滤器、优化数据库查询以及加强监控报警机制。通过这些方法,可以有效缓解缓存穿透对系统的影响,提升系统的稳定性和性能。