Apache2反向代理.note

noteId: WEB8c7e7856f0723e8b346a5891c703ed04 · 原始路径:/ALL/Linux - A模块/服务配置/Apache2/配置合集/Apache2反向代理.note · 图片:11 · 附件待处理:0

 
 
1、配置 Apache2 反向代理:
a2enmod proxy proxy_http
 
vim 000-default.conf
# ProxyPreserveHost On    //保留Host请求头,例如客户端访问www.shenzhen.cn,后端收到时仍然是www.shenzhen.cn,而不是172.16.10.10
# ProxyPass / http://172.16.10.10/   //定义后端服务器;最后加 / 表示保留 URI
# ProxyPassReverse 172.16.10.10   //(可选)解决重定向问题,例如后端服务器上有重定向,例如将web重定向到某个页面:http://172.16.10.10/login,这样重定向直接传给客户端时,因为是内网地址,所以公网客户端无法直接访问,定义了这个之后,apache就会自动把这里定义的172.16.10.10,改为公网地址。
·http 代理:
可以在后面加上端口
 
 
·https代理(多一行配置):
可以在后面加上端口
# 配置比 http多一行,需要加一个 SSLProxyEngine,复制下面的 SSLEngine 即可。
这里就必须加 ProxyPreserveHost,这样就不会传IP给后端服务器,如果证书字段中没有IP,不配置这个,就会导致 proxy 和 后端服务器这个链路的web不信任
 
 
·模板:
 
 
 
2、如果有多个后端:
# 可以调度方式:
## 都需要 a2enmod lbmethod_... 启用
byrequests    //默认算法,按权重分配。默认权重都是 1,所以就是轮询
bytraffic    //尽量让 后端web1 和 web2 处理的总字节量一样。如果更改权重,例如 web1 = 2,web2 = 1,那么 web1 就会承担两倍于 web2的流量(字节量)
bybusyness    //给最空闲的后端web(目前处理请求最少的web)
heartbeat    //不太常用,后端主动告诉代理自己的状态
 
# 配置 代理:
a2enmod lbmethod_byrequests    //启用默认代理模式,如果不用这个,可以启用其他的,然后调用。不启用这个会报错,因为默认使用的就是它
a2enmod proxy_balancer
 
vim 000-default.conf
如果是用默认的调度方法,就可以不显示指定ProxySet,如果用其他方法,就需要指定 ProxySet
 
 
 
·模板:
 
 
 
·如果要配置 重定向:
如果要配置重定向 http 到 https,那么代理这里的 80 端口就不需要定义代理,直接写重定向即可(同时写代理和重定向,重定向不会生效,代理的优先级更高)