反向代理负载均衡之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. SDL OPENGL 在linux ubuntu示例

    gl画纹理texture /* * SDL OpenGL Tutorial. * (c) Michael Vance, 2000 * briareos@lokigames.com * * Distri ...

  2. 运行vb写的程序,有些电脑上会弹出一个与office相关的窗口

    到网上搜索了一下,找了几个解决方案,不过我的电脑上没出现过,所以先收藏一下,或许以后能用上. 来自:http://bbs.csdn.net/topics/380204412 今天将注册表的项一个个删除 ...

  3. MyEclipse中引用的maven配置文件只访问私服的配置

    MyEclipse中要用到集成的maven,公司内网有个私服,办公机不能上外网. 这时Eclipse中设置引用的外部Setting配置文件中只需如下配置即可: 1.配置本地主机的maven仓库路径 & ...

  4. @RequestBody

    之前写过一篇记录文章,写的是将一个比较复杂的数据结构在前台组合起来后传递到后台. 当时并不太了解@RequestBody,也并没有使用js提供的JSON.stringify()方法 所有都是自己写的, ...

  5. Window配置环境变量

    拿Java为例,讲一下怎么配置环境变量使得javac可以在全局被调用: 1.添加环境变量 例如我们的Java下载在了:D:\Java\v1.8 我们就到环境变量那添加一个例如叫“Java_path”的 ...

  6. Oracle导出数据中的prompt,set feedback 等是什么意思

    prompt 显示后面的提示,相当于一般的操作系统命令echo,输出后面的信息Importing table t_testset feedback off 1.set feedback 有三种方式: ...

  7. 3、Python-字符串

    下标 name = 'abcdef' print(name[0]) print(name[1]) print(name[2]) # a # b # c 切片 # 切片的语法:[起始:结束:步长] na ...

  8. git使用详细过程

    1. Git概念 1.1. Git库中由三部分组成        Git 仓库就是那个.git 目录,其中存放的是我们所提交的文档索引内容,Git 可基于文档索引内容对其所管理的文档进行内容追踪,从而 ...

  9. Parent Proxy 和 Origin Server配置学习

    Parent Proxy Configuration proxy.config.http.parent_proxy_routing_enable 开启/关闭parent caching: proxy. ...

  10. 怎样动态地插入不会暴露给用户的JS文件

    也是无意间看见的,以前想过这个问题,但是没多想,今天看到这段代码豁然开朗 (function() { var dynamicScript = document.createElement('scrip ...