反向代理负载均衡之APACHE

一、反向代理
1.1 介绍反响代理

  反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

1.2 反向代理的工作方式

  通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。由于外部网络上的主机并不会配置并使用这个代理服务器,普通代理服务器也被设计为在Internet上搜寻多个不确定的服务器,而不是针对Internet上多个客户机的请求访问某一个固定的服务器,因此普通的Web代理服务器不支持外部对内部网络的访问请求。当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代理服务的方式称为反向代理服务。此时代理服务器对外就表现为一个Web服务器,外部网络就可以简单把它当作一个标准的Web服务器而不需要特定的配置。不同之处在于,这个服务器没有保存任何网页的真实数据,所有的静态网页或者CGI程序,都保存在内部的Web服务器上。因此对反向代理服务器的攻击并不会使得网页信息遭到破坏,这样就增强了Web服务器的安全性。
  反向代理方式和包过滤方式或普通代理方式并无冲突,因此可以在防火墙设备中同时使用这两种方式,其中反向代理用于外部网络访问内部网络时使用,正向代理或包过滤方式用于拒绝其他外部访问方式并提供内部网络对外部网络的访问能力。因此可以结合这些方式提供最佳的安全访问方式。

1.3 反向代理的作用

1.3.1 保护网站安全

任何来自Internet的请求都必须先经过代理服务器

1.3.2 配置缓存功能加速Web请求

可以缓存真实Web服务器上的某些静态资源,减轻真实Web服务器的负载压力

1.3.3 实现负载均衡

充当负载均衡服务器均衡地分发请求,平衡集群中各个服务器的负载压力

二、使用apache实现反向代理实战
2.1 环境准备:两台虚拟机

操作系统:centos7.X

1、备份

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo # yum install -y gcc glibc gcc-c++ make screen tree lrzsz

node1:
以yum的方式安装apache修改http端口为8080

# yum install -y httpd
# sed -i 's/Listen 80/Listen 8080/g' /etc/httpd/conf/httpd.conf # echo 'node1' > /var/www/html/index.html
[root@node2 ~]# curl http://192.168.3.200:8080/
node1

node2:
以yum的方式安装apache修改http端口为8080

# yum install -y httpd
# sed -i 's/Listen 80/Listen 8080/g' /etc/httpd/conf/httpd.conf # echo 'node2' > /var/www/html/index.html
[root@node2 ~]# curl http://192.168.3.200:8080/
node2

在node1上再次编译安装apache2.4.25作为反向代理服务器

# cd /usr/local/src/ && wget http://mirrors.hust.edu.cn/apache/httpd/httpd-2.4.25.tar.gz

# tar zxf httpd-2.4..tar.gz
# cd httpd-2.4.
# ./configure --prefix=/usr/local/httpd-2.4. --enable-so --enable-modules="all"
# make && make install
# ln -s /usr/local/httpd-2.4./ /usr/local/httpd

编辑linux-node1的apache作为反向代理的配置文件

# vim /usr/local/httpd/conf/extra/httpd-proxy.conf

LoadModule proxy_module modules/mod_proxy.so #proxy模块
LoadModule proxy_connect_module modules/mod_proxy_connect.so #链接的模块
LoadModule proxy_http_module modules/mod_proxy_http.so #给http做代理模块
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so #负载均衡模块
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so #算法模块,根据server的请求量
LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so #算法模块,根据server流量
LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so #算法模块,根据server繁忙程度
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so #
ProxyRequests Off #如果没有对服务器采取安全措施之前,请不要开启此项
<Proxy balancer://mycluster> #lb集群组的名称
BalancerMember http://192.168.3.140:8080 #集群组成员
BalancerMember http://192.168.3.200:8080 #集群组成员
</Proxy>
ProxyPass /demo balancer://mycluster #跳转,和lb集群组名称对应
ProxyPassReverse /demo balancer://mycluster

在apache的主配置文件include上述配置文件,并启动apache

# vim /usr/local/httpd/conf/httpd.conf

Include conf/extra/httpd-proxy.conf

# 写入测试文件

# echo 'node1' > /usr/local/httpd-2.4./htdocs/index.html

/usr/local/httpd/bin/apachectl -t # 测试apache语法是否正确
/usr/local/httpd/bin/apachectl -k start # 启动apache

通过访问代理服务器,可以看到负载均衡的效果

http://192.168.3.140:8080/demo


对apache增加一个管理,并重启

# cat /usr/local/httpd/conf/extra/httpd-proxy.conf

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
ProxyRequests Off
<Proxy balancer://mycluster>
BalancerMember http://192.168.3.140:8080
BalancerMember http://192.168.3.200:8080
</Proxy>
ProxyPass /demo balancer://mycluster
ProxyPassReverse /demo balancer://mycluster
<Location /manager>
SetHandler balancer-manager
Order Deny,Allow
Allow from all
</Location>

打开浏览器管理界面
http://192.168.3.140:8080/manager

增加虚拟主机

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
ProxyRequests Off
<Proxy balancer://mycluster>
BalancerMember http://192.168.3.140:8080
BalancerMember http://192.168.3.200:8080
</Proxy>
ProxyPass /demo balancer://mycluster
ProxyPassReverse /demo balancer://mycluster <Location /manager>
SetHandler balancer-manager
Order Deny,Allow
Allow from all
</Location> <VirtualHost *:>
ServerAdmin webmaster@chinasoft.com
DocumentRoot "/opt"
ServerName www.chinasoft.com
ServerAlias chinasoft.com
ErrorLog "logs/www.chinasoft.com-error_log"
CustomLog "logs/www.chinasoft.com-access_log" common
ProxyPass / balancer://mycluster
ProxyPassReverse / balancer://mycluster
</VirtualHost>

在本地电脑的host文件加入以下内容,过后要清理掉
192.168.3.140 www.chinasoft.com

http://www.chinasoft.com

反向代理负载均衡之APACHE的更多相关文章

  1. 反向代理负载均衡之nginx

    一.集群 1.1 什么是集群 集群是一组相互独立的.通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理.一个客户与集群相互作用时,集群像是一个独立的服务器.集群配置是用于提高可用性 ...

  2. 如何使用Weave以及Docker搭建Nginx反向代理/负载均衡服务器

    Hi, 今天我们将会学习如何使用 Weave 和 Docker 搭建 Nginx 的反向代理/负载均衡服务器.Weave 可以创建一个虚拟网络将 Docker 容器彼此连接在一起,支持跨主机部署及自动 ...

  3. nginx 详解反向代理负载均衡

    什么是反向代理负载均衡 使用代理服务器可以将请求转发给内部的Web服务器,使用这种加速模式显然可以提升静态网页的访问速度.因此也可以考虑使用这种技术,让代理服务器将请求 均匀转发给多台内部Web服务器 ...

  4. 反向代理负载均衡-----nginx

    一:集群 1.1:集群的概念    集群是一组相互独立的.通过高速网络互联的计算机,他们构成了一个组,并以单一系统的模式加以管理.一个客户与集群相互作用时,集群像是一个独立的服务器.集群配置是用于提高 ...

  5. 项目实战2.2—nginx 反向代理负载均衡、动静分离和缓存的实现

    实验一:实现反向代理负载均衡且动静分离 1.环境准备: 机器名称 IP配置 服务角色 备注 nginx VIP:172.17.11.11 反向代理服务器 开启代理功能 设置监控,调度 rs01 RIP ...

  6. Nginx 反向代理 负载均衡 虚拟主机配置

    Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代理服务器的作用,区分正向代理和反向代理的区别,搭建使用Nginx反向搭理和负载均衡,了解Nginx常 ...

  7. Nginx 反向代理 负载均衡 虚拟主机

    Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代理服务器的作用,区分正向代理和反向代理的区别,搭建使用Nginx反向搭理和负载均衡,了解Nginx常 ...

  8. 十.nginx反向代理负载均衡服务实践部署

    期中集群架构-第十章-nginx反向代理负载均衡章节章节====================================================================== 0 ...

  9. 项目实战2.1—nginx 反向代理负载均衡、动静分离和缓存的实现

    总项目流程图,详见 http://www.cnblogs.com/along21/p/8000812.html 实验一:实现反向代理负载均衡且动静分离 1.环境准备: 机器名称 IP配置 服务角色 备 ...

随机推荐

  1. 2019.3.28&2019.3.30考试

    2019.3.28 : 肥肠爆芡,因为这场考试的题太屑了,所以我咕咕了 Upd on 2019.3.30 压进来一篇(因为都没啥意义) 2019.3.30 : 全机房读错题+没有大样例=T2全体爆炸 ...

  2. (转)如何修改maven的默认jdk版本

    背景:在maven的配置文件中配置编译的jdk插件,就不需要在eclipse中进行重新的指定了. 问题 1.创建maven项目的时候,jdk版本是1.5版本,而自己安装的是1.7或者1.8版本. 2. ...

  3. 内存分布图,errno

    输出错误,errno是默认的全局变量 错误处理函数: 错误号:errno perror函数:        void perror(const char *s); strerror函数:        ...

  4. 关于打包测试环境,百度地图报 Bmap not undefined

    https的网站使用百度地图,如果你引用的地址没写对的话,加载不出来百度地图,被认为是不安全的JS内容. https://api.map.baidu.com/api?+你的秘钥+&s=1 应该 ...

  5. 有意思的undefined columns selected,源于read.table和read.csv

    输入以下语法时: read.table(site_file,header=T)->data data<-data[which(data[,5]=="ADD"),] 出现 ...

  6. linux反向删除文件

    Linux反选删除文件 最简单的方法是 # shopt -s extglob      (打开extglob模式) # rm -fr !(file1)  如果是多个要排除的,可以这样: # rm -r ...

  7. 怎样解决Myeclipse内存溢出?

    打开myeclipse 10安装目录下的myeclipse.ini文件 打开文件,将文件圈圈中的内容设置如下图: 上面是其中一种解决方案,下面介绍第二种解决方案 设置Default VM Argume ...

  8. jdk1.6 反射性能对比【原】

    ReflectPerformance.java package aaa.bbb.ccc; import java.lang.reflect.Method; public class ReflectPe ...

  9. CentOS6.x下源码安装MySQL5.5

    1. 更新yum源:http://www.cnblogs.com/vurtne-lu/p/7405931.html 2. 卸载原有的mysql数据库 [root@zabbix ~]# yum -y r ...

  10. Hammer.js 移动端手势库,多点触控插件

    jquery用法: 引入3个JS:<script src="jquery.js"></script> <script src="hammer ...