这里是修真院前端小课堂,每篇分享文从

【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】

八个方面深度解析前端知识/技能,本篇分享的是:

【跨越解决方案之nginx】

1.背景介绍

跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。

所谓同源是指,域名,协议,端口相同。浏览器执行javascript脚本时,会检查这个脚本属于那个页面,如果不是同源页面,就不会被执行。

同源策略的目的,是防止黑客做一些做奸犯科的勾当。比如说,如果一个银行的一个应用允许用户上传网页,如果没有同源策略,黑客可以编写一个登陆表单提交到自己的服务器上,得到一个看上去相当高大上的页面。黑客把这个页面通过邮件等发给用户,用户误认为这是某银行的主网页进行登陆,就会泄露自己的用户数据。而因为浏览器的同源策略,黑客无法收到表单数据。

2.知识剖析

随着现在开发的前后端分离,我们只需要Server端告诉我们Api URL即可,那么这会产生一个问题:Ajax跨域。

配置nginx

listen     1008;   //监听的窗口

server_name  localhost;   #监听的地址

location /{

root   F:/WebstormProjects/skill-admin-html/branches/skill-admin-html-18.0.branch;  //根目录

index  index.html index.htm;  //设置默认页

try_files $uri $uri/ /index.html =404;

}

location /ajax/{

proxy_pass   http://120.92.4.210:10011/;  //服务器的地址

proxy_set_header            Host                            $host;

proxy_set_header            X-Real-IP                       $remote_addr;

proxy_set_header            X-Forwarded-For                 $proxy_add_x_forwarded_for;

}

3.常见问题

1、Nginx 常见错误

  1. 端口占用问题

2.Nginx所在目录有中文

3、502 Bad Gateway、503 Serveice Unavailable

4、 504 Gateway Timeout

4.解决方案

1、我的配置文件里服务侦听的是 80 端口,但80端口被占用了,我们更换端口就可以了,

2、目录是不能有中文

3、 一般原因:后端服务无法处理,业务中断。

解决方法:从后端日志获取错误原因,解决后端服务器问题。

4、一般原因:后端服务器在超时时间内,未响应Nginx代理请求

解决方法:根据后端服务器实际处理情况,调正后端请求超时时间。

5.编码实战

6.扩展思考

跨域的其他解决方法

1.jsonp 需要目标服务器配合一个callback函数。

2.window.name+iframe 需要目标服务器响应window.name。

3.window.location.hash+iframe 同样需要目标服务器作处理。

4.html5的 postMessage+ifrme 这个也是需要目标服务器或者说是目标页面写一个postMessage,主要侧重于前端通讯

5.CORS  需要服务器设置header :Access-Control-Allow-Origin。

7.参考文献

"http://www.cnblogs.com/liyongsan/p/6795851.html">nginx常见问题

http://www.cnblogs.com/gabrie...l">nginx的反向代理机制解决前端跨域问题

跨越解决方案之nginx相关推荐

  1. 解决方案:Nginx高可用方案

    解决方案:Nginx高可用方案 关键词 KeepAlived(主服务器 和 备份服务器 故障时 IP 瞬间无缝交接) VRRP协议(路由器组,提供虚拟IP,一个master和多个backup,组播消息 ...

  2. 高并发解决方案之“Nginx限流”

    本文将分4个步骤讲解: 1.api压力测试 2.查看api响应性能 3.nginx限流进行优化 4.查看优化结果 1 api压力测试 1.1 安装压测工具 yum -y install httpd-t ...

  3. 高并发解决方案-代理服务器Nginx

    文章目录 Nginx 1. Nginx概念 2.Nginx的应用场景 3. Linux环境下Nginx的安装与启动 4. Nginx静态网站部署 5. Nginx配置虚拟主机 5.1 端口绑定 5.2 ...

  4. nginx缓存页面后,串会话问题的解决方案(转)

    为什么80%的码农都做不了架构师?>>>    nginx支持页面缓存,之前我的博客有介绍配置方案,昨天出了一个诡异的问题,别人的机器登录后,我的机器打开应用的首页会出现别人的用户信 ...

  5. Nginx高级应用--负载均衡、rewrite规则

    Nginx除了可以用作web服务器外,他还可以用来做高性能的反向代理服务器,它能提供稳定高效的负载均衡解决方案.nginx可以用轮询.IP哈希.URL哈希等方式调度后端服务器,同时也能提供健康检查功能 ...

  6. 重磅!6.7亿美元!F5喜提开源服务器Nginx

    编辑 | 小智整理 3 月 11 日,Nginx 在其官网宣布与 F5 签署最终协议,完成这笔 6.7 亿美元的收购. Nginx 是一款轻量级的 Web 服务器 / 反向代理服务器及电子邮件(IMA ...

  7. nginx:模块讲解

    本文讲解一些nginx安装时的一些模块. 1.stub_status nginx中的stub_status模块主要用于查看Nginx的一些状态信息. 本模块默认没有安装,需要编译安装.nginx开启s ...

  8. 【部署】Nginx长连接配置

    nginx upstream keepalive connections Nginx从 1.1.4 开始,实现了对后端机器的长连接支持,这是一个激动人心的改进,这意味着 Nginx 与后端机器的通信效 ...

  9. 百度云观测优化建议解决方案:未设置max-age或expires

    网页的缓存是由 HTTP 消息头中的 "Cache-control" 来控制的,常见的取值有 private.no-cache.max-age.must-revalidate 等, ...

最新文章

  1. LeetCode简单题之二进制矩阵中的特殊位置
  2. 52 个深度学习目标检测模型汇总,论文、源码一应俱全!(附链接)
  3. 转载:如何避免代码中的if嵌套
  4. 贝叶斯公式的个人理解
  5. python 控件叠加_Python3 tkinter基础 Checkbutton anchor for生成多个控件并西对齐
  6. 二级c语言程序设计bug,《C语言及程序设计》实践项目——发现Bug
  7. 统计xml文件中的标签出现框数及出现过的图片数
  8. JS和AIR(FLEX)的互相调用详解
  9. Lights off(关灯游戏)终极算法
  10. CentOS7安装RabbitMQ(解决guest用户无法登录问题)
  11. 自然语言处理NLPIR-ICTCLAS 授权文件过期问题
  12. python中关系运算符惰性求值_python对象属性惰性取值
  13. scp传输 ssh: connect to host port 22: Connection refused终极解决 vps
  14. 牛逼的人很早就开始牛逼了
  15. K-Means聚类算法原理及其python和matlab实现
  16. 禅与摩托车维修艺术(2)
  17. VB制作网页自动填表
  18. iOS 自动布局报错:Unable to simultaneously satisfy constraints.
  19. 睿云智合(Wise2C)容器解决方案如何操作
  20. PLC的扫描工作的三个过程

热门文章

  1. Nginx反向代理及负载均衡
  2. Java单例模式的几种实现方式
  3. 学习笔记17-C语言-结构、联合、枚举
  4. java math 函数_Java中Math类常用函数总结
  5. 约瑟夫环(丢手绢问题)
  6. lua面向对象编程之点号与冒号的差异详细比较
  7. MachineLearning(1)-激活函数sigmoid、损失函数MSE、CrossEntropyLoss
  8. 计算机操作系统 死锁问题
  9. 加密机组会 会议纪要
  10. 即时通讯开发(逐行、隔行扫描)