apache设置反向代理实现前端js跨域访问

前端用veu跨域访问接口,在dev模式下的时候使用proxyTable代理,但是在打包上线是发现还是出现了跨域问题。

果然,proxyTable只能在dev模式使用,解决跨域问题还是要配置服务器的代理。

服务器是Apache,从网上找到的资料,设置的方法如下。

https://segmentfault.com/a/1190000007352990

1. 在xampp或者wamp安装目录下,修改httpd.conf配置文件,去掉以下两行前面 # 号,从而启用Apache proxy module。

LoadModule proxy_module modules/mod_proxy.so 
LoadModule proxy_http_module modules/mod_proxy_http.so  

  

Ubuntu: 

sudo apt-get install libapache2-mod-proxy-html
sudo apt-get install libxml2-dev
sudo a2enmod proxy proxy_http

2. 找到httpd-vhosts.conf配置文件,在virtualHost里面配置反向代理,完成之后的配置代码如下:

<VirtualHost *:80>
  ServerName www.name.local
  DocumentRoot D:WWW ame
  <Directory D:WWW ame>
    Options Indexes FollowSymLinks ExecCGI
    AllowOverride all
    Order deny,allow
    allow from all
  </Directory>


  ProxyRequests Off
  <Proxy *>
    Order deny,allow
    Allow from all
  </Proxy>

  ProxyPass /api http://baidu.com/api

</VirtualHost>

  • ProxyRequests Off 指令是指采用反向(reverse)代理
  • ProxyPass 指令允许将一个远端服务器映射到本地服务器的 URL 空间中。
  • 配置完成之后,访问 http://www.name.local/api 实际就是访问http://baidu.com/api上的资源。

3. 重启Apache,重命名之前本地的后端代码文件夹(反正让本地后端代码不能够正常运行即可),然后测试一下看api数据读取是否正常。若api数据读取正常,那么Apache反向代理设置成功并且正常工作。

 
原文地址:https://www.cnblogs.com/jiangxiaochang/p/8579665.html