dubbo分布式

用Nginx和Apache的反向代理解决Ajax的跨域问题

人盡茶涼 提交于 2019-12-06 18:18:48
概述 Ajax开发中令人头疼的问题之一是跨域问题。在服务器端来说,我们常用的手段之一就是利用Nginx或者Apache的反向代理功能。 傲游主站上有一个很吸引人的功能,就是下载次数计数,如下图所示。这个功能就是利用了上述技术实现的。 从下图的Firebug中可以看到,该页面通过Ajax反复请求一个名为/api/counter的路径以径获取最新的下载数量。 而这个输出路径实际上在服务器上是不存在的,这个路径只是另外一台服务器某个路径而已,这就是使用了Nginx的反向代理功能实现的。 反向代理 反向代理(Reverse Proxy),顾名思义,就是代理的反向功能。我们使用代理,可以访问一些我们所不能直接访问到的网络,或者可以隐藏自己的真实身份。而反向代理,可以在不暴露内部服务器的情况下,让外部用户访问我们内部、防火墙后的服务。 使用反向代理主要有以下好处: 1. 请求的统一控制,包括设置权限、过滤规则等; 2. 隐藏内部服务真实地址,暴露在外的只是反向代理服务器地址; 3. 实现负载均衡,内部可以采用多台服务器来组成服务器集群,外部还是可以采用一个地址访问; 4. 解决Ajax跨域问题。 5. 作为真实服务器的缓冲,解决瞬间负载量大的问题。 Nginx 与Apache 配置 1、Nginx 回到计数器的这个例子,Nginx的配置片段如下所示: location /api/counter