最近的文章列表

【分享】美团酒店Node全栈开发实践

前后端分离的背景

“前后端分离”显然已不是什么新鲜的话题,Zakas在2013年10月份就曾发表过一篇博客《Node.js and the new web front-end》讨论Node背景下新时代的前端。毫无疑问,Node的出现给JavaScript语言带来了新的生机,也使得前端开发者有了更多的可能性。

前后端分离表面上看似乎是一场“圈地运动”,但实质上前后端分离是为了解决以往开发模式的一些诟病和痛点,同时也是迎合大的行业趋势的明智之举。我所在的美团酒店事业部去年7月份成立,新的业务、新的开发团队,这一切使得我们的前后端分离推进的很彻底。截至目前,前端承载的所有业务和线上服务都是基于Node,生产环境已经有近20台服务器。如此带来的全新前后端协作方式能够让专业的人做专业的事,无论前端后端都能较之前更专注在自己擅长的方面。

2016/8/22 Comments:
如何通过(nginx+php)修改配置来解决php文件上传大小限制问题
max_execution_time = 300max_input_time = 600

前面已经介绍过apache+php下如何解决php文件上传大小限制问题。那么对于nginx+php网站,与apache+php下如何解决php文件上传大小限制问题不同的就是nginx本身的限制,限制了客户端上传文件的大小,这里以nginx为例说明nginx+php下如何解决这个问题。

1.nginx配置项修改

   修改/usr/local/nginx/conf/nginx.conf 文件,查找 client_max_b

2016/1/21 Comments:
如何构建Web前端模拟服务器(Mock Server)? - 大前端进化论

大家肯定遇到过,当后端 API 没有编写完成时,前端无法进行调试,这就导致了前端会被后端阻塞的情况。而我所说的 Mock Server 是相当于构建假数据,然后把这些假数据存到 JSON 文件上,Mock Server 可以响应请求或者生成页面,当然也可以顺便生成 API 文档。

然后,还会遇到的一个问题就是,接口的 URL 跟真正的 URL 是不同的,Mock Server 往往会使用 127.0.0.1:3000 这样的 URL,而不是 http://www.camnpr.com/bar这样的的路径,这会使得开发时与生产环境中 URL 不一样的问题。

所以想看看大家是如何构建 Mock Server 的。

为了更好的分工合作,让前端能在不依赖后端环境的情况下进行开发,其中一种手段就是为前端开发者提供一个web容器,这个本地环境就是 mock server。

2015/9/9 Comments:
Nginx服务器上如何安装并配置PHPMyAdmin的教程

一、 准备工作:

1. 如果mysql的root账号为空,需要设置root密码
CentOS下默认安装的mysql服务器,里面的root账号默认密码为空,首先为root设置一个密码
#mysqladmin -u root password yourpassword

*注: 虽然通过一些特殊配置,可以使phpmyadmin允许空密码登录,但是不推荐这样做,尤其是公网的服务器。

2. 设置php.ini正确配置session.save_path

1). 首先检查php.ini配置文件

2015/9/6 Comments:
Laravel之Apache、Nginx服务器的安装器(PHAR)安装

安装Composer

Laravel框架使用Composer(PHP包管理工具,参考 Composer 中文文档)来管理代码依赖性。 首先,你需要下载Composer的PHAR打包文件( composer.phar ),下载完成后把它放在项目目录下或者放到 usr/local/bin 目录下以便在系统中全局调用。在Windows操作系统中,你可以使用Composer的Windows安装工具

安装Laravel

通过 Laravel 安装器安装

2015/1/1 Comments:
Nginx与NodeJS实现简单的代理跨域(proxy_pass)

在用nodejs时,有个地方需要用到跨域,使用

   app.use(function(req, res, next){
         res.header('Access-Control-Allow-Origin', '*');
         res.header('Access-Control-Allow-Headers','X-Request-With');
         next();
   });
2014/11/3 Comments:
简单的PHP破解防盗链图片的示例代码

有自己的主机一般都会设计"防盗链", 其实包括图片防盗链,和下载防盗链等,如:
1.使用.htaccess设置防盗链

代码如下:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?camnpr.com/.*$ [NC]
2014/10/20 Comments:
PHP来配置Nginx或Apache中使用X-Frame-Options禁止网页被iframe引用的方法

可以使用php或nginx等添加X-Frame-Options header来控制frame权限
X-Frame-Options有三个可选的值:

DENY:浏览器拒绝当前页面加载任何Frame页面
SAMEORIGIN:frame页面的地址只能为同源域名下的页面
ALLOW-FROM:允许frame加载的页面地址

2014/9/26 Comments:
php实现压缩来自网络的文件,不用保存临时文件,通过调用nginx的第三方模块mod_zip

php 本身有 zip 模块,可以生产 zip 文件。但是这个 zip 模块只能使用本地文件来打包。如果需要打包输出的文件来自网络,就得先保存临时文件。在文件数量多或者文件大的时候就很杯具。另外,由 php 来输出大的打包文件会占用 php 进程大量时间,影响并发能力。

nginx 有一个第三方模块,mod_zip 。同样可以输出 zip 包。和 X-Accel-Redirect 有点类似,只需要 php 输出相应文件的路径等信息,然后给一个特殊的响应头即可。

nginx zip 模块使用的响应头是 X-Archive-Files: zip 。加上这个响应头,nginx zip 模块就会处理响应正文,完成打包输出。

2014/9/4 Comments:
总结PHP开启关闭错误报告示例代码以及PHP脚本不报错的原因

那么如果PHP脚本不报语法错,会是什么原因呢:

1. 一般的集成环境,默认会开启错误报告; 但在linux系统中,使用软件包安装的就不一定了,

  此时可以查看PHP配置文件,打开错误报告 =>

代码如下:
  display_errors = On      /* PHP配置文件路径:/uer/local/php/etc/php.ini  */
2014/8/28 Comments: