跨越解决方案之nginx
来源:互联网 发布:tvb软件下载 编辑:程序博客网 时间:2024/06/07 07:07
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/gabrielchen/p/5066120.html">nginx的反向代理机制解决前端跨域问题
ppt
- 跨越解决方案之nginx
- nginx 实现js跨越
- AJAX请求跨越问题-解决方案
- 请求跨越问题三个解决方案
- Spring 之 跨越问题解决
- vue项目发布,通过nginx跨越问题
- $.ajax $.getJSON在java中的跨越解决方案
- 跨越边界: Lisp 之美
- 跨越边界: Lisp 之美
- 跨越边界: Lisp 之美
- Python学习之跨越篇
- 使用Nginx反向代理解决AJAX跨越问题
- 跨越2009之华为总裁任正非
- 秦令令:移动营销跨越之年
- 【算法】跨越式搜索之数组查找
- nginx 403 forbidden 解决方案之目录权限与文件权限
- nginx请求超长解决方案
- SQL入侵之“跨越32位MD5路障”
- 在centos7下安装gitlab-runner
- WinForm中button禁用点击的另一种实现
- 10年磨一剑,编程经验总结。
- jQuery 的选择器
- JDK 1.8 新特性记录
- 跨越解决方案之nginx
- java虚拟机动态类型语言支持
- 二位数组中的查找——剑指offer
- mongodb 使用$lookup做多表关联处理
- 搜狐笔试Kolakoski数列
- python numpy格式化打印
- Xshell中输入rz提示:-bash: rz: command not found
- 命令模式
- hbase全分布安装出现的问题