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反向代理配置的主要内容,如果未能解决你的问题,请参考以下文章