squid代理服务器

ginx也可以代理:反向代理 ---- 负载均衡;nginx也可以缓存,但是无法做正向代理(proxy_pass 反向代理)

squid正向代理服务器【VPN】

squid作用:正向代理,可以缓存加速,基于ACL协议可以过滤控制

squid代理的工作机制

****1、****代替客户端向网站请求数据。不需要访问代理的IP地址,直接请求目的网站,由代理服务器处理请求和响应。可以隐藏用户的真实IP

****2、****访问目标网站之后,会把(静态web)元素保存到缓存中,发送给客户端。下一次所有的客户机都可以使用缓存访问。加快访问速度【⭐核心⭐】

数据流向

squid作用

****1、资源获取。****代替客户端获取目标服务器的资源

****2、加速访问。****代理服务器可能和目标服务器距离更近,可以起到一定的加速作用

****3、缓存作用。****代理服务器保存从目标服务器获取的资源,客户端下一次再请求目标服务器可以直接访问缓存即可。减轻目标服务器的压力

****4、隐藏真实的IP地址。****代理服务器代替客户端请求,客户端的信息不会显示。(squid和nginx都可以做到)

squid代理的类型

****1、传统代理,正向代理。****需要在客户端指定定好代理服务器的地址和端口

****2、透明代理。****客户端不再需要指定代理服务器的地址和端口,而是通过默认路由来进行转发(squid服务器,网关)

****3、反向代理。****在反向代理的squid服务器中,如果缓存了请求资源,会将资源直接返回给客户端。否则,代理服务器会代理客户端向web服务器发起请求,然后再把请求的资源相应给客户端,同时把响缓存在本地,后续请求者都可以使用。(总结:有缓存,直接响应缓存内容,没有缓存,才会代替客户端请求web资源,响应结果保存在缓存,然后响应给客户端下一次直接访问缓存即可。缓存是否命中)

SNAT和DNAT 和 代理服务器squid的区别

****①网络层次不同:****SNAT和DNAT是网络层,squid是应用层

②对数据处理方式不同:SNAT和DNAT是改变数据包头部的源IP地址和目的地址。squid不改变数据包的任何信息,直接把数据包发给代理,代理通过应用层过滤的方式实现转发(有点像路由器,类似于路由器转发数据包的工作过程)

test1 客户端 192.168.233.10

test2 squid 192.168.233.20 透明代理的时候需要双网卡

web页面 nginx1 192.168.233.70 nginx2 192.168.233.80

tar -zxvf squid

cd squid

./configure --prefix=/usr/local/squid \

--sysconfdir=/etc \

--enable-arp-acl \

--enable-linux-netfilter \

--enable-linux-tproxy \

--enable-async-io=100 \

--enable-err-language="Simplify_Chinese" \

--enable-underscore \

--disable-poll \

--enable-epoll \

--enable-gnuregex

make -j 10 && make install

ln -s /usr/local/squid/sbin/* /usr/local/sbin/

useradd -M -s /sbin/nologin squid

chown -R squid:squid /usr/local/squid/var/

vim /etc/squid.conf

http_access allow all

cache_effective_user squid

cache_effective_group squid

squid -k parse

squid -z 初始化

squid

netstat -antp | grep squid

squid -N -d1

vim /etc/init.d/squid

vim /etc/squid.conf

62gg

cache_mem 2000 MB

reply_body_max_size 200 MB

maximum_object_size 200 MB

透明代理

web 12.0.0.12

双网卡分别指向网关:

1、配置文件写错了,重启没有任务报错

2、添加了ip加端口之后一定要查看一下ip+端口是否生效。

3、客户端和服务端都要指向网关

4、iptables的策略,在代理服务器要配置,开启转发功能

ACL访问控制

反向代理

http_port 192.168.233.20:80 accelvhost vport

squid从一个缓存变成了一个web服务器反向代理的加速模式 squid监听的80端口请求。同时和web服务器的请求端口绑定

squid不是转发请求,而是要么从缓存获取数据,要么直接请求绑定的web端口

accel: 反向代理加速模式

vhost: 支持域名或者主机名来代表代理服务器

vport: 支持ip+端口来表示代理服务器

cache_peer 192.168.233.61 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web1

缓存获取失败,请求的服务器名

parent:上下级的关系。80端口

0:表示就是一台代理服务器,不涉及运营商

no-query: 不查询,直接获取数据

originserver: 指定源服务器

round-robin max_conn=30 weight=1 name=web1:squid通过轮询的方式将请求分发到其中一台父节点

max_conn=30 最大连接数

weight=1 权重

name=web1 设置别名

相关推荐
Wang's Blog43 分钟前
Redis: 集群环境搭建,集群状态检查,分析主从日志,查看集群信息
数据库·redis
容器( ु⁎ᴗ_ᴗ⁎)ु.。oO1 小时前
MySQL事务
数据库·mysql
cyt涛3 小时前
MyBatis 学习总结
数据库·sql·学习·mysql·mybatis·jdbc·lombok
Rookie也要加油3 小时前
01_SQLite
数据库·sqlite
liuxin334455663 小时前
教育技术革新:SpringBoot在线教育系统开发
数据库·spring boot·后端
看山还是山,看水还是。4 小时前
MySQL 管理
数据库·笔记·mysql·adb
fishmemory7sec4 小时前
Koa2项目实战2(路由管理、项目结构优化)
数据库·mongodb·koa
momo小菜pa4 小时前
【MySQL 09】表的内外连接
数据库·mysql
Jasonakeke4 小时前
【重学 MySQL】四十九、阿里 MySQL 命名规范及 MySQL8 DDL 的原子化
数据库·mysql
程序猿小D5 小时前
第二百六十九节 JPA教程 - JPA查询OrderBy两个属性示例
java·开发语言·数据库·windows·jpa