Nginx 是前端工程师的好帮手
Nginx [engine x] 是俄罗斯的 Igor Sysoev 编写的一个 强大的 HTTP 和反向代理服务器,而且也推出了 Windows 版本。Windows 版本使用 select 模型,仅供测试,不推荐在生产环境中使用。
Nginx 强大的反向代理能力,使它成为前端工程师不折不扣的好帮手,关于 Nginx 助力前端开发上的一些使用,可以看看这篇文章,这里说说我的一些使用。
我的前端开发环境是这样的:
1. 我们正式的网站在最外层是一个反向代理,可以代理访问后端部署的一个个子网站。
2. 数据是通过接口提供的,接口与子网站是分开部署的,端口或IP是不同的。
3. 开发的时候,网站是在本机发布和调试的。
4. 请求数据需要通过 ajax 调用接口,接口是部署在另外一台服务器上的。
很明显,我这里遇到的就是跨越的问题 (关于跨域,请看看这里)。 由于最外层反向代理的存在,子网站与接口对外是表现为一个网站,因此没有跨域问题。但是在我的开发机这里,就存在跨域问题了。为了解决它,可以引入一个反向代理,让我开发机上的网站和接口表现为一个网站,就跟我们最外层的反向代理是一样的。
在 Nginx 中可以这么配置
server {
listen *:5000;
access_log logs/mysite_access.log;
error_log logs/mysite_error.log;
# 为了调试方便,我不缓存
expires 0;
# 开启 gzip,跟真实环境一样
gzip on;
# 网站的路径
location / {
root "D:/path/to/mysite/html";
index index.html index.htm;
}
# 静态文件的路径
location /static {
alias "D:/path/to/mysite/static";
}
# 我们的 api 接口会使用特殊前缀 @ 来区分
# 把所有 uri 以 /@api_some_data 开头的转发到接口服务器
location /@api_some_data {
# 看情况,是否需要重写 uri
# rewrite /@api_some_data/(.*) /$1 break;
# 转发到接口服务器的地址
proxy_pass http://192.168.1.2:8000;
proxy_set_header Cookie $http_cookie;
}
}
在 js 中 就可以这么写 ajax
$.ajax({
url: '/@api_some_data/get_data/',
type: 'POST',
cache: false,
dataType: 'json',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(post_data),
success: function (response) {
// handle success
},
error: function () {
// handle error
}
});
就这样,借助 Nginx 强大的反向代理功能,我就在开发机上轻松的模拟出了真实环境,并且可以愉快的开发和调试了。
Nginx 是前端工程师的好帮手的更多相关文章
- 写给想成为前端工程师的同学们 ―前端工程师是做什么的?a
前端工程师是做什么的? 前端工程师是互联网时代软件产品研发中不可缺少的一种专业研发角色.从狭义上讲,前端工程师使用 HTML.CSS.JavaScript 等专业技能和工具将产品UI设计稿实现成网站产 ...
- 如何才能成为一个合格的web前端工程师
转载原文地址:https://juejin.im/post/5cc1da82f265da036023b628 开篇前端开发是一个非常特殊的行业,它的历史实际上不是很长,但是知识之繁杂,技术迭代速度之快 ...
- 006_饿了么大前端总监sofish帮你理清前端工程师及大前端团队的成长问题!
作者|Sofish编辑|小智 & 尾尾本文是前端之巅向 sofish 的约稿<什么样的人可以称为架构师?>.采访< 饿了么大前端团队究竟是如何落地和管理的?>以及 so ...
- 前端工程师面试问题归纳(一、问答类html/css/js基础)
一.参考资源 1.前端面试题及答案整理(一) 2.2017年前端面试题整理汇总100题 3.2018最新Web前端经典面试试题及答案 4.[javascript常见面试题]常见前端面试题及答案 5.W ...
- 转: 写给想成为前端工程师的同学们 (from 360前端团队)
转自: http://www.75team.com/post/to-be-a-good-frontend-engineer.html 前端工程师是做什么的? 前端工程师是互联网时代软件产品研发 ...
- 一个Web前端工程师或程序员的发展方向,未来困境及穷途末路
如果你刚好是一个Web前端工程师,或者你将要从事web前端工作.你应该和我有同样的感慨,web前端技术到了自己的天花板,前端工作我能做多少年?3年或5年?自己的职业规划应该怎么样?收入为什么没有增长? ...
- 前端工程师手中的Sublime Text
原文地址:http://css-tricks.com/sublime-text-front-end-developers/ 我的Blog:http://cabbit.me/sublime-text-f ...
- Web前端工程师成长之路——知识汇总
一.何为Web前端工程师? 前端工程师,也叫Web前端开发工程师.他是随着web发展,细分出来的行业.Web前端开发工程师,主要职责是利用(X)HTML/CSS/JavaScript ...
- 前端工程师技能之photoshop巧用系列第三篇——切图篇
× 目录 [1]切图信息 [2]切图步骤 [3]实战 前面的话 前端工程师除了使用photoshop进行测量之外,更重要的是要使用该软件进行切图.本文是photoshop巧用系列的第三篇——切图篇 切 ...
随机推荐
- SQL Server 跨服务器 不同数据库之间复制表的数据
不同数据库之间复制表的数据的方法: 当表目标表存在时: insert into 目的数据库..表 select * from 源数据库..表 当目标表不存在时: select * into 目的数据库 ...
- Linux终端界面屏保
Linux终端界面屏保 在很多Linux使用者的认知里,都认为终端下的Linux操作界面是没有屏保的,只有像windows那样的图形界面下才有屏保.但是其实Linux下也是有屏保的,只不过是ASC ...
- js 判断一个对象是否为空
由于对于一个空对象{},其boolean值也是真,所以不能简单的用boolean来判断: jQuery的源码里有一个判断空对象的方法 function isEmptyObject(a) { var b ...
- 2018.11.29 Wireless technology roadmap(1)
1物联网还是卖开发板阶段. BT NBIoT 窄带物联网(Narrow Band Internet of Things) Sigfox Zigbee Wifi:大数据量传输 LoRA :远距离无线电( ...
- ios系统降级
1.使用PP助手/iTunes备份好文件资料,以防重要信息丢失: 2.设备连接iTunes,按住Shift键之后点击“恢复iPhone”,选择已下载好的iOS8.4.1固件,等待更新完成即可. 注意要 ...
- Nginx(Windows)
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器. 反向代理方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将 ...
- 使用Junit进行Java单元测试
1.新建一个Number类,该类中包含两个函数,求和.求差 2.在eclipse上安装Junit 右键test工程,选择“Properties”→“Java Build Path”→“Librarie ...
- Python 使用PyMySql 库 连接MySql数据库时 查询中文遇到的乱码问题(实测可行) python 连接 MySql 中文乱码 pymysql库
最近所写的代码中需要用到python去连接MySql数据库,因为是用PyQt5来构建的GUI,原本打算使用PyQt5中的数据库连接方法,后来虽然能够正确连接上发现还是不能提交修改内容,最后在qq交流群 ...
- iOS NSLog去掉时间戳及其他输出样式
1.一般项目中我的NSLog会在Prefix.pch文件添加如下代码,已保证在非调试状态下NSLog不工作 1 2 3 4 5 #ifdef DEBUG #define NSLog(...) NS ...
- hydra nodejs 微服务框架简单试用
hydra 是一个以来redis 的nodejs 微服务框架 安装 需要redis,使用docker 进行运行 redis docker run -d -p 6379:6379 redis 安装yo ...