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

通俗的说,由于单个服务器的处理客户端(用户)请求能力有一个极限,当用户的接入请求蜂拥而入时,会造成服务器忙不过来的局面,可以使用多个服务器来共同分担成千上万的用户请求,当代理服务器接收到web请求之后,就可以分配给处理指定任务的服务器,或者处于闲置的服务器处理,这样让服务端处理的速度得到提升,当然代理服务器的用处还有更多,例如ajax跨域,服务器安全等需要读者自己去了解。

下图所示,反向代理:

如果要说配置反向代理的服务器,我相信很多人会首选nginx (网上帖子很多),那么我们今天就来讲讲用XAMPP搭建的本地测试环境中的apache 配置。

为了本次的配置演示,我们需要配置几台虚拟的服务器(虚拟主机):
abc.com
lby.com
web.com
配置完最终效果:

我们可以直接使用 127.0.0.1(localhost)地址来访问该域名代理下的三个域名的内容。

例如:现在我们需要访问 lby.com , 我们可以用 127.0.0.1/lby 来访问

本次配置总共分成两大部分:
一 、配置本地hosts 域名解析。
因为是自己设置的虚拟主机域名,所以dns域名解析不了,本地访问的话,我们可以先配置一个本地的解析,用于方便访问,距离配置如下:

在系统c盘目录下找到:C:\Windows\System32\drivers\etc\hosts 文件

打开文件后,在最后面追加以下配置:

127.0.0.1 lby.com
127.0.0.1 abc.com
127.0.0.1 web.com

注意:有些时候是保存不了的,因为c盘的文件默认是只读,不可以更改保存,所以需要设置权限允许修改。

二、配置apache 中的虚拟主机和代理。
上面已经域名配置好了,接下来就开始搭建上面的3台虚拟主机吧:
1.在xampp文件夹中打开htdocs(次文件夹默认是xampp服务器的网站根目录):
为了方便,在该文件夹下新建以下3个文件夹用于作为虚拟主机的目录:

第一个:lby

第二个:abc

第三个:web

提醒:可以在这三个目录中,都设置一个index.html页面,分别设置不同的内容,为了方便识别使用。

2.开始配置虚拟主机:
在xampp 文件夹下找到 httpd-vhosts.conf(虚拟主机配置文件):

I:\xampp\apache\conf\extra\httpd-vhosts.conf
打开后添加以下配置(添加到文档的最后面即可):

先配置第一台虚拟主机:(lby.com)

<VirtualHost *:80>
  ServerAdmin admin@lby.com
  DocumentRoot "/xampp/htdocs/lby"
  ServerName lby.com
  ErrorLog "logs/dummy-host2.example.com-error.log"
  CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>
配置第二台虚拟主机:(abc.com)

<VirtualHost *:80>
  ServerAdmin admin@abc.com
  DocumentRoot "/xampp/htdocs/abc"
  ServerName abc.com
  ErrorLog "logs/dummy-host2.example.com-error.log"
  CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>
配置第三台虚拟主机:(web.com)

<VirtualHost *:80>
  ServerAdmin admin@web.com
  DocumentRoot "/xampp/htdocs/web"
  ServerName web.com
  ErrorLog "logs/dummy-host2.example.com-error.log"
  CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>
配置到此,可以开启apache服务器,测试三个域名访问,如果没有其他问题应该可以正常访问!
3.开始配置反向代理:
a.找到 I:\xampp\apache\conf\httpd.conf

设置httpd.conf,开启代理:

该配置文件中的"#" 代表注释,所以只需要将以下几行内容的注释去掉即可:

第139行:     LoadModule proxy_module modules/mod_proxy.so
第142行:     LoadModule proxy_connect_modulemodules/mod_proxy_connect.so
第145行:     LoadModule proxy_ftp_modulemodules/mod_proxy_ftp.so
第147行:     LoadModule proxy_http_modulemodules/mod_proxy_http.so
b.配置代理:

其实配置虚拟主机那个文件(I:\xampp\apache\conf\extra\httpd-vhosts.conf)中,有一个默认的主机就是 localhost, 我们来看下它的默认配置:

<VirtualHost *:80>
  ServerAdmin admin@lby.com
  DocumentRoot "/xampp/htdocs/"
  ServerName localhost
  ErrorLog "logs/dummy-host2.example.com-error.log"
  CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>
上面的这个就是默认的127.0.0.1 主机的配置了,所以我们要在这个主机上配置去代理请求我们设置好的虚拟主机,需要在上面添加以下配置:
<VirtualHost *:80>
  ServerAdmin admin@lby.com
  DocumentRoot "/xampp/htdocs/"
  ServerName localhost
#配置代理清单,注意 /的路径问题
  ProxyPass /web http://web.com/
  ProxyPass /lby http://lby.com/  
  ProxyPass /abc http://abc.com/
   
  ErrorLog "logs/dummy-host2.example.com-error.log"
  CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>

至此,配置完之后保存,重启apache服务
我们就可以使用 127.0.0.1/lby 来访问到原虚拟主机 lby.com的内容了。

使用XAMPP配置Apache服务器反向代理的更多相关文章

  1. 通过Apache配置web服务器反向代理

    - 第一步: 到安装好的apache文件目录conf文件下,找到httpd.conf文件 找到如下配置,去掉#可以启动HTTP反向代理功能 : LoadModule proxy_module modu ...

  2. 搭建gerrit服务器(apache&nginx反向代理方式)

    这段时间,想搭建一个gerrit,用于代码托管,gerrit的搭建,网上有很多种教程,但是自己按照别人的教程逐步操作,一直出现诸多问题.最头痛的就是:Configuration Error Check ...

  3. apache做反向代理

    实验目的 通过apache实现反向代理的功能,类似nginx反向代理和haproxy反向代理 环境准备 逻辑架构如下 前端是apche服务器,监听80端口,后端有两台web服务器,分别是node1和n ...

  4. Apache 如何反向代理tomcat并且实现Session保持

    简介 LAMT=Linux+Apache+MySQL+Tomcat: Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器: 在中小型系统和并发访问用户不是很多的场合下 ...

  5. apache httpd反向代理配置

    apache httpd 2.4.6反向代理的配置,用户访问A server的8080端口,后台会自动请求Bserver的一个端口. 例如,用户访问ip-172-31-28-175的8080端口,后台 ...

  6. APACHE 与IIS同时存在的情况下,给APACHE添加反向代理 共用80端口

    一.首先打开IIS,将IIS的端口改成81,不要让IIS占用了80端口 二.打开APACHE的httpd.conf配置文件,将里面的端口配置成80 三.打开APACHE的虚拟目录配置文件,如:http ...

  7. zend studio 配置 apache服务器事宜

    安装好 zend studio后,配置 apache服务器时,设置 configuration directory时,需选中 xampp\apache里面的 conf 文件夹,即完整的路径为: *\x ...

  8. docker配置nginx做反向代理管理tomcat应用

    由于业务开始复杂,单一tomcat已经不足以满足业务需求,多tomcat部署起来不方便而且面临域名解析问题,因此开始增加反向代理,由于docker的易用性,便使用docker管理各个应用. docke ...

  9. 使用Nginx实现服务器反向代理和负载均衡

    前言 同事总问我Nginx做反向代理负载均衡的问题,因此特意留下一篇扫盲贴! 直接部署服务器的风险 假设,我开发了一个网站,然后买了一台Web服务器和一台数据库服务器,直接部署到公共网络上.如下图,网 ...

随机推荐

  1. Angular Material 的设计之美

    前言 Angular Material 作为 Angular 的官方组件库,无论是设计交互还是易用性都有着极高的质量.正如官方所说其目的就是构建基于 Angular 和 Typescript 的高质量 ...

  2. Python MySQL 数据库

    python DB API python访问数据库的统一接口规范,完成不同数据库的访问 包含的内容: connection cursor exceptions 访问数据库流程: 1.创建connect ...

  3. whu-contest-2019(online)

    比赛网址:http://whu2019.contest.codeforces.com/group/YyBKO8xFiH/contest/102167 赛后总结: T:今天参加了武汉大学校赛网络赛,在c ...

  4. 牛客小白月赛4 B 博弈论 思维 字符串

    链接:https://www.nowcoder.com/acm/contest/134/B来源:牛客网 题目描述 铁子和顺溜在学习了博弈论的sg函数之后,解决了很多很多博弈题,现在他们遇到了一道难题. ...

  5. codeforces E. Phone Talks(dp)

    题目链接:http://codeforces.com/contest/158/problem/E 题意:给出一些电话,有打进来的时间和持续的时间,如果人在打电话,那么新打进来的电话入队,如果人没有打电 ...

  6. 搭建Nuget服务器(Nuget私服)

    一.前言 对公司或者对个人来说,经过一段时间的沉淀之后,都会有一些框架或者模块,为了对这些框架或者模块进行更好的管理和维护,也为了方便后面的开发或者其他同事,我们可以在我们本地或者内网搭建一个Nuge ...

  7. 使用openlivewriter编写cnblogs博客

    下载OpenLiveWriter 下载地址:http://openlivewriter.org/ 安装OpenLiveWriter 1.账号配置 2.常规操作,省略- 安装高亮插件 1.下载插件:ht ...

  8. js数组增删元素

    操作数组的方法 push() 结尾添加 数组.push(元素) 参数 描述 newelement1 必需.要添加到数组的第一个元素. newelement2 可选.要添加到数组的第二个元素. newe ...

  9. 4.String、StringBuffer、StringBuilder

    一.String类型 String类型是一个引用类型,但是该类被final修饰,属于最终类,不能派生子类. 字符串一旦初始化就不能再被更改,因为String类中存储内容的char[]数组是也被fina ...

  10. Java8之熟透Lambda表达式

    一.Lambda简述 1.1.Lambda概述 ​ Lambda 表达式可以理解为简洁地表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表.函数主体.返回类型,可能还有一个可以抛出的异常列表. ...