反向代理负载均衡之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.25.tar.gz
# cd httpd-2.4.25
# ./configure --prefix=/usr/local/httpd-2.4.25 --enable-so --enable-modules="all"
# make && make install
# ln -s /usr/local/httpd-2.4.25/ /usr/local/httpd

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

# vim /usr/local/httpd/conf/extra/httpd-proxy.confLoadModule 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.confInclude conf/extra/httpd-proxy.conf

# 写入测试文件

# echo 'node1' > /usr/local/httpd-2.4.25/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.confLoadModule 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 *:80>
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并实现反向代理负载均衡和缓存功能

    一.编译安装nginx 1.下载 [root@ns1 ~]# wget http://nginx.org/download/nginx-1.10.0.tar.gz 2.解压 [root@ns1 ~]# ...

  2. Nginx反向代理 负载均衡sky

    Nginx服务部署 Nginx简介 Nginx (engine x) 是一个轻量级的.高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由伊戈尔·赛索耶夫为俄罗 ...

  3. Nginx反向代理负载均衡虚拟主机动静分离UrlRewrite防盗链

    文章目录 1. Nginx简介 1.1 Nginx背景 1.2 Nginx的优点 1.3 Nginx的功能特性及常用功能 2.Nginx安装 2.1 下载上传解压 1.2 安装 3.nginx核心概念 ...

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

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

  5. nginx 反向代理负载均衡 tomcat集群应用

    nginx 反向代理负载均衡 tomcat集群应用 环境介绍: 系统:centos5.8_64 192.168.0.201:nginx服务器 192.168.0.202:tomcat服务器 192.1 ...

  6. Nginx特性验证-反向代理/负载均衡/页面缓存/URL重定向

    原文发表于cu:2016-08-25 参考文档: Nginx 反向代理.负载均衡.页面缓存.URL重写等:http://freeloda.blog.51cto.com/2033581/1288553 ...

  7. Nginx总结(安装,使用,正向代理,反向代理,负载均衡)

    目录 Nginx介绍与安装 一.Nginx简介 1.什么是ngnix 2.nginx应用场景 二.Nginx安装与启动 Nginx静态网站部署 一.静态⽹站的部署 二.配置虚拟主机 1.端⼝绑定 2. ...

  8. 带你了解什么是Nginx(实操反向代理-负载均衡)

    文章目录 一.前言 ①什么是Nginx? ②服务中为什么要使用Nginx原因? 二.安装Nginx 1.介绍 2.安装 ①在Linux系统安装nginx ②上传并解压到/usr/local/目录下 ③ ...

  9. Nginx反向代理负载均衡

    环境准备: 总共四台机器,两台装有Nginx的机器做负载均衡,两台机器装有Apache作为WEB服务器. 机器信息 hostname IP 说明 lb01 192.168.1.19 nginx主负载均 ...

  10. Tomcat集群+Nginx反向代理+负载均衡

    Tomcat集群 所谓tomcat集群,就是向外提供并行服务的多台机器,任何一台服务器宕机,其他服务器还可以代替它向外提供服务,从而不影响用户访问 为了提高tomcat集群的高可用性,还需要实现ngi ...

最新文章

  1. PHP计划任务:如何使用Linux的Crontab执行PHP脚本(转)
  2. sed行首行尾添加字符
  3. openssl工具调试ssl加密ftp
  4. 你是在用计算机算你的人生经历吗,计算机人生规划
  5. 图片抓取_小小爬虫批量抓取微信推文里的图片
  6. JAVA中的“+”、“concat”和“append”
  7. 是驴是骡,遛一遛就知道了
  8. crypto-js加密、解密
  9. 最好用的OCR实时翻译工具:Bob for Mac
  10. Java Web程序设计笔记 • 【第1章 Web应用程序】
  11. 写给后端程序员的前端开发流程与正确姿势.
  12. html5网页及Cocos中生成二维码
  13. 能量换算,方便减肥控制饮食
  14. 动态规划 -- 活动时间问题
  15. 逆袭大厂生存指南-1 初出茅庐
  16. C# 构造器-实例构造器,类型构造器
  17. Prometheus 环境搭建
  18. 动物 v.s. AI奥运会:你会赌一只鸟还是机器人夺冠?
  19. java开发经典文章
  20. android app实现更新功能

热门文章

  1. BZOJ 1260涂色 paint
  2. 微信小游戏跳一跳外挂辅助程序
  3. 学习笔记75—方差分析(主效应和交互效应)
  4. 网络模块封装-axio
  5. android 照片同步到iphone,简明教程教你同步安卓设备照片到iCloud照片流
  6. Vuecli 城市三级联动的使用
  7. Word撤销键(Ctrl+z)无效的解决方法
  8. 批处理修改网关和dns服务器,[转载]使用批处理自动修改IP地址网关和DNS
  9. 1.【PPT】新建PPT文件、插入图片、插入文本框、添加形状、页面设置
  10. 文件上传5-uploads靶场