Apache2反向代理.note
1、配置 Apache2 反向代理:
a2enmod proxy proxy_httpvim 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 端口就不需要定义代理,直接写重定向即可(同时写代理和重定向,重定向不会生效,代理的优先级更高)