使用XAMPP配置Apache服务器反向代理

Posted timor-m

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用XAMPP配置Apache服务器反向代理相关的知识,希望对你有一定的参考价值。

                                                                     Timor-M 2018-6-17 11:58:03

前言

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

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

 

下图所示,反向代理:

技术分享图片

 

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

 


为了本次的配置演示,我们需要配置几台虚拟的服务器(虚拟主机):
  1. abc.com
  2. lby.com
  3. web.com

配置完最终效果:

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

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

本次配置总共分成两大部分:

一 、配置本地hosts 域名解析。

因为是自己设置的虚拟主机域名,所以dns域名解析不了,本地访问的话,我们可以先配置一个本地的解析,用于方便访问,距离配置如下:

在系统c盘目录下找到:C:WindowsSystem32driversetchosts 文件

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

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:xamppapacheconfextrahttpd-vhosts.conf
 

打开后添加以下配置(添加到文档的最后面即可):

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

<VirtualHost *:80>
    ServerAdmin [email protected]
    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 [email protected]
    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 [email protected]
    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:xamppapacheconfhttpd.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:xamppapacheconfextrahttpd-vhosts.conf)中,有一个默认的主机就是 localhost, 我们来看下它的默认配置:

 
<VirtualHost *:80>
    ServerAdmin [email protected]
    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 [email protected]
    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服务器反向代理的主要内容,如果未能解决你的问题,请参考以下文章

apache配置反向代理+websocket

怎么配置反向代理 apache

apache 80 端口 反向代理 tomcat 8080端口

宝塔 apache 反向代理配置wss服务

Apache配置反向代理负载均衡和集群(mod_proxy方式)

apache2.2 反向代理 配置css js静态文件