apache反向代理和负载均衡
正向代理:正如我们用的游戏加速代理,大多的个人PC把请求发给正向代理服务器,代理服务器通常配置高端的带宽,替我们请求相应的服务
负载均衡中的反向代理:通常意义上,是一个请求转发的代理。类似一个收发室的管理人员,外来的很多邮件,传到收发室,然后由管理员分配给不同的办公室。通过这样的操作,可以使每台服务器避免过多的负载导致宕机。而转发的这个过程,通常也有很多种不同的算法。
总结:正向代理一般是指PC连接到代理服务器,由代理服务器转发请求到网站。而反向代理指的是用户将请求发送给反向代理服务器,由反向代理服务器将请求路由转发到具体的服务器。
其中可能有人考虑到,如果一个请求时登陆请求,而第二个请求时操作,结果第二个请求转发到第二个服务器上面。那么如何操作。这个不用担心,apache反向代理有 session粘连这样一个概念,它会把所有关于cookie的文件保存在apache服务器上面,其他的操作均会读取这样一个文件。
Apache反向代理设置方法
打开 Apache 安装目录的 conf 文件夹(linux 在 /etc/httpd/conf 或者 /usr/local/apache/conf)
打开 httpd.conf
把
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
前面的注释去掉
在 httpd.conf 最后添上
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.linuxidc.com
ServerAlias www.linuxidc.com
ProxyRequests Off
<Proxy http://www.linuxidc.com>
Options MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Proxy>
ProxyPass / http://61.191.191.4:9002/
ProxyPassReverse / http://61.191.191.4:9002/
</VirtualHost>
<VirtualHost *:80>
ServerName img.linuxidc.com
ServerAlias img.linuxidc.com
ProxyRequests Off
<Proxy http://img.linuxidc.com>
Options MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Proxy>
ProxyPass / http://61.191.191.4:9003/
ProxyPassReverse / http://61.191.191.4:9003/
</VirtualHost>
Apache负载均衡的实现
1、查看是否有mod_proxy_http.so、mod_proxy_balancer.so、mod_proxy.so三个模块
# ll /usr/local/apache2/modules
2、加载模块
# cd /usr/local/src/httpd-2.2.23/modules/proxy/
# /usr/local/apache2/bin/apxs -c -i mod_proxy.c proxy_util.c
# /usr/local/apache2/bin/apxs -c -i mod_proxy_balancer.c
# /usr/local/apache2/bin/apxs -c -i mod_proxy_http.c
3、修改http.conf配置文件
# vim /usr/local/apache2/conf/httpd.conf
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so
ProxyRequests Off
<Proxy balancer://clusterphpinfo>
BalancerMember http://10.0.2.203:80 loadfactor=1
BalancerMember http://10.0.2.204:80 loadfactor=1
</Proxy>
ProxyPass / balancer://clusterphpinfo
4、重启httpd服务
# service httpd restart
5、通过apache将后端服务器做出主从,只需要在从服务器后面添加status=+H
# vim /usr/local/apache2/conf/httpd.conf
BalancerMember http://10.0.2.204:80 loadfactor=1 status=+H