apache代理

本文介绍了Apache的正向代理和反向代理概念,详细讲解了正向代理的配置和代理限制设置,以及反向代理中如何进行负载平衡配置。在反向代理中,提到了集群和负载平衡的实现,包括成员状态管理和动态调整。最后,讨论了使用Apache代理实现多服务器请求分配的场景,强调了数据库和文件存储的同步问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、正向代理、反向代理

  • 百度说,正向代理是内部机器通过代理及其访问外网信息的方式;方向代理是外部机器通过代理机器访问内网信息。

二、正向代理

  • 设置ProxyRequests On即可;
  • 依赖三个模块:mod_proxy_connect、mod_proxy_http、mod_proxy
  • 使用代理服务器:windows 中在这里插入图片描述
    开启代理,添加代理服务器ip即可
  • 可以通过proxy标签来进行一些代理限制如利用Require host xxxx来限制某网址才可以通过此服务器访问;
  • 所以也可以Require ip xxxx
  • 也可以Require user xxx来进行用户限制。当验证方式为basic时,发现浏览器第一回访问需要用户、密码后续不需要,看请求也没看见authorization头,利用postman请求时发现添加一个Proxy-Authorization basic xxx(xxx为base64(账号:密码)值)即可,不知道浏览器的后续代理验证是什么方式。
  • 多个require条件记得要用RequireAll或RequireAny标签包起来才生效。

三、反向代理

1.反向代理

ProxyPass /a http://baidu.com #代理传递,将百度映射到localhost/a
ProxyPassReverse /a http://baidu.com #代理反向传递,将修改由百度返回的响应头location、content-location、uri的url;
  • 说这两个总是一起使用,定义之后访问/a,页面发生了跳转,跳转到了https://baidu.com,没能组织http到https的跳转
  • 将命令的url改为https,报错,需要添加以下命令:
SSLProxyEngine On
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off 
  • cookie设置,暂时没研究
ProxyPassReverseCookieDomain  "backend.example.com"  "public.example.com"
ProxyPassReverseCookiePath  "/"  "/mirror/foo/"

2.集群和负载平衡

配置名为abc的负载平衡

<Proxy balancer://abc>
	BalancerMember http://a.com:80 loadfactor=1 timeout=1
	BalancerMember http://b.com:800 loadfactor=4 timeout=12
	ProxySet lbmethod=bytraffic
</Proxy>
ProxyPass / balancer://abc
ProxyPassReverse / balancer://abc
  • 此配置依赖以下模块:
    proxy_balancer_module(代理负载平衡模块)、slotmem_shm_module(基于插槽的共享内存模块)、lbmethod_bytraffic_module(基于流量加权的负载平衡算法模块)
  • 成员使用顺序设定
    a. 利用lbset=num来设定成员集合,当小数字的成员都不可用时才会访问更大数字的成员集合。
    b. 利用status=+xx或-xx来设定每个成员的状态,来决定成员是否使用。+是添加状态,-是去除状态;D拒绝,S停止,I忽略错误,R热备,H热备中,E错误,N排除;
    c.以上都可以在平衡器管理程序中动态设置。

3.平衡器管理

  • 开启
<Location "/balancer-manager">
    SetHandler balancer-manager
    Require host localhost
</Location>
  • 使用
    访问localhost/balancer-manager来到控制页面,根据需要动态设定即可。(我的require host localhost 咋个就不行。。改成ip才可以访问)

ps

现在可以将请求分配到多个服务器了,上面的程序应该是什么样的呢,

  • 每个服务器都部署同样的程序,公用一个数据库(或者数据库做主从备份,一个成员用于读请求,一个成员用于写请求,估计是)
  • 公用一个文件存储(七牛啥的吧),否则文件不同步。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值