Apache反向代理配置

Posted 自我之道

tags:

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

一、问题描述:

在本地服务器A(11.36.164.161)上部署前端系统,采用xampp集成的apache;
后台位于服务器B(101.8.22.13:5978),A与B是通的,因此在A上能够直接请求数据,但是客户端C访问A的时候,默认是由C直接向B请求数据,如果C与B不通,则没法请求后台数据,解决的办法是在A上对B配置反向代理,即所有客户端对B的请求实际上都通过A进行转发。在xampp集成的apache服务器中配置,采用端口代理,由于前端端口与新配置的代理端口可能存在跨域,因此还要开启A的允许跨域。

二、配置方法

本地服务器A:11.36.164.161
远程服务器B:101.8.22.13:5978
以下配置均在A中完成

①开启apache代理,在httpd.conf中打开以下配置

\xampp\apache\conf\httpd.conf

LoadModule proxy_module  modules/mod_proxy.so
LoadModule proxy_connect_module  modules/mod_proxy_connect.so
LoadModule proxy_ftp_module  modules/mod_proxy_ftp.so
LoadModule proxy_http_module  modules/mod_proxy_http.so

Include conf/extra/httpd-vhosts.conf

②修改httpd.conf中Directory配置为以下内容使服务器允许跨域

<Directory />
     AllowOverride none
     Require all granted
     Header set Access-Control-Allow-Origin *
</Directory>

③在httpd-vhosts.conf中添加端口代理

\xampp\apache\conf\extra\httpd-vhosts.conf

listen 88
<VirtualHost 11.36.164.161:88>
       ServerName dummy-host.11.36.164.161
       ProxyRequests  off
       <Proxy *>
              Order  allow,deny
              Allow  from all
       </Proxy>
       ProxyPass / http://101.8.22.13:5978/
       ProxyPassReverse / http://101.8.22.13:5978/
</VirtualHost>

含义:将原来请求B服务器http://101.8.22.13:5978/的URL通过服务器A的88端口进行转发,注意斜杠,例如服务器A之前请求B的URL为http://101.8.22.13:5978/stat,则设置反向代理后请求改为http://11.36.164.161:88/stat

④修改原来前端直接请求http://101.8.22.13:5978/的URL为本机88端口的URL

globe.restDataURL ="http://11.36.164.161:88";//后台数据实际url为:http://101.8.22.13:5978/,已采用反向代理配置


以上是关于Apache反向代理配置的主要内容,如果未能解决你的问题,请参考以下文章

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

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

Apache反向代理配置

apache反向代理配置

Apache 正向代理与反向代理配置

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