让Nginx隐藏版本显示信息

Nginx 会在 http 头,或者出现错误页的时候会有醒目的版本号提示。

为了安全,可以关闭这些信息。

方法很简单,只需在 nginx.conf 的 http {  里头加入 server_tokens 的参数

例如:

http {
include      mime.types;
default_type  application/octet-stream;
server_tokens off;    #关闭版本显示
client_header_timeout      3m;
client_body_timeout        3m;
send_timeout                3m;

Continue reading 让Nginx隐藏版本显示信息

使用 Nginx 的 X-Sendfile 机制提升 PHP 文件下载性能

很多时候用户需要从网站下载文件,如果文件是可以通过一个固定链接公开获取的,那么我们只需将文件存放到 webroot 下的目录里就好。但大多数情况下,我们需要做权限控制,例如下载 PDF 账单,又例如下载网盘里的档案。这时,我们通常借助于脚本代码来实现,而这无疑会增加服务器的负担。

例如下面的代码:
Continue reading 使用 Nginx 的 X-Sendfile 机制提升 PHP 文件下载性能

Ubuntu 编译安装 Nginx PHP MySQL Memcached

之前开发机已经装好了apache,php,mysql.不过还想折腾下nginx php.

nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端。

nginx一般是把请求发fastcgi管理进程处理,fascgi管理进程选择cgi子进程处理结果并返回被nginx

Continue reading Ubuntu 编译安装 Nginx PHP MySQL Memcached

Nginx 平滑升级到 Tengine

nginxtotengine

Tengine 是淘宝在 Nginx 基础上开发的一个衍生版。官方的简介说针对大访问量网站的需求,添加了很多高级功能和特性,并且已经在淘宝网、天猫商城等大型网站的生产环境下稳定运行。具体可以访问其官网。开始进入主题,Nginx 如何不重启平滑升级过渡到 Tengine。

Continue reading Nginx 平滑升级到 Tengine

nginx实现永久(301)/临时(302)跳转的方法

301和302分别是什么意思?

301永久跳转,当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息中的状态码的一种,表示本网页永久性转移到另一个地址。

302临时跳转,也是状态码的一种,意义是暂时转向到另外一个网址。

Continue reading nginx实现永久(301)/临时(302)跳转的方法

实例讲解Nginx下的rewrite规则

一.正则表达式匹配,其中:
* ~ 为区分大小写匹配
* ~* 为不区分大小写匹配
* !~和!~*分别为区分大小写不匹配及不区分大小写不匹配
二.文件及目录匹配,其中:
* -f和!-f用来判断是否存在文件
* -d和!-d用来判断是否存在目录
* -e和!-e用来判断是否存在文件或目录
* -x和!-x用来判断文件是否可执行
三.rewrite指令的最后一项参数为flag标记,flag标记有:
1.last    相当于apache里面的[L]标记,表示rewrite。
2.break本条规则匹配完成后,终止匹配,不再匹配后面的规则。
3.redirect  返回302临时重定向,浏览器地址会显示跳转后的URL地址。
4.permanent  返回301永久重定向,浏览器地址会显示跳转后的URL地址。

Continue reading 实例讲解Nginx下的rewrite规则

Nginx设置alias实现虚拟目录 alias与root的用法区别

Nginx 貌似没有虚拟目录的说法,因为它本来就是完完全全根据目录来设计并工作的。如果非要给nginx安上一个虚拟目录的说法,那就只有alias标签比较”像”,干脆来说说alias标签和root标签的区别吧。最基本的区别:alias指定的目录是准确的,root是指定目录的上级目录,并且该上级目录要含有location指定名称的同名目录。另外,根据前文所述,使用alias标签的目录块中不能使用rewrite的break。

Continue reading Nginx设置alias实现虚拟目录 alias与root的用法区别

nginx php_fastcgi yaf获取SERVER里的PATH_INFO

今天将一个在其他服务器上运行良好的项目部署到另外一个服务器上,跑不起来了.

debug后发现,$_SERVER[‘PATH_INFO’]为空.SERVER数组里没有PATH_INFO这个key.

出问题的服务器是nginx,正常的是apache.

问谷歌,得知,nginx要获取这个需要配置下.

Continue reading nginx php_fastcgi yaf获取SERVER里的PATH_INFO

Nginx no input file specified错误解决方案

遇到这个问题,原因有2个:
1、网上大多数的都说的是这个原因:fastcgi_param    SCRIPT_FILENAME      $document_root$fastcgi_script_name;
这句需要加入fcgi.conf文件;
2、第二个原因是我遇到的:对应document_root的权限必须与nginx.conf和fcgi.conf的用户一样,如果不一样,请修改:
[root@www03 ~]# chown -R user:user /data/htdocs/group/group

Continue reading Nginx no input file specified错误解决方案

返回顶部