共计 2042 个字符,预计需要花费 6 分钟才能阅读完成。
引言:在前后端分离架构下,难免会遇到跨域问题。目前的解决方案大致有 JSONP,反向代理,CORS 这三种方式。JSONP 兼容性良好,最大的缺点是只支持 GET 方式请求。反向代理方式简单彻底,基本只需要服务器配置即可完成。CORS 由服务提供程序主动声明自己可信任源,目前的缺点是老式浏览器无法支持。
问题:反向代理如何实现?
解决方案:使用 Nginx 轻松搞定反向代理。配置很简单,还附带负载均衡配置方法。
步骤 1. 下载 Nginx。最新下载地址:http://nginx.org/en/download.html
步骤 2. 修改 / conf/ nginx.conf 配置文件。Nginx 运行起来。
访问 localhost:8000/index.html 会直接访问发布的静态文件。访问 localhost:8000/api/index.html 会被轮询分配到 localhost:8005/index.html 和 localhost:8006/index.html。这样就能保证前端和后端服务在同源下,彻底解决跨域问题。同时 api 还实现了负载均衡,减轻了服务器压力。
步骤 3,设置服务端 cookie 的 path 和 domain。
效果:
涉及配置文件内容:
#设定负载均衡的服务器列表
#weight 越大,负载的权重就越大。8006 的访问量是 8005 的两倍
upstream targetserver{
#ip_hash;# 按访问 ip 的 hash 结果分配,解决 Session 跨服务器问题
server localhost:8005 weight=1;
server localhost:8006 weight=2;
}
—————————————————- 正文结束分割线 —————————————————-
upstream 还可以为每个设备设置状态值,这些状态值的含义分别如下:
down 表示单前的 server 暂时不参与负载.
weight 默认为 1.weight 越大,负载的权重就越大。
max_fails:允许请求失败的次数默认为 1. 当超过最大次数时,返回 proxy_next_upstream 模块定义的错误.
fail_timeout : max_fails 次失败后,暂停的时间。
backup:其它所有的非 backup 机器 down 或者忙的时候,请求 backup 机器。所以这台机器压力会最轻。
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-01/139038.htm