nginx安装第三方模块的方法

nginx安装第三方模块的方法

nginx文件非常小但是性能非常的高效,这方面完胜apache,nginx文件小的一个原因之一是nginx自带的功能相对较少,好在nginx允许第三方模块,第三方模块使得nginx越发的强大. 在安装模块方面,nginx显得没有apache安装模块方便,当然也没有php安装扩展方便.在原生的nginx,他不可以动态加载模块,所以当你安装第三方模块的时候需要覆盖nginx文件.接下来看看如何安装nginx第三模块吧.
Nginx对某个目录设置密码保护例子

Nginx对某个目录设置密码保护例子

有时不想某个目录被访问,所以要加密码之类来保护,以前用过的 Apache 好像很简单就实现目录加密。我用的是 Nginx,用了那么久 Nginx 还真没试过加密……参考了一些资料,然后发现这样就可以:(Debian系统,配置中“#.......”表示后续还有其他配置)1. 配置网站(假如 yousite.com 放在 /home/www,然后要对 ooxx 目录加密) 代码如下:server { listen 80; server_name yousite.com; root /home/www; index index.php index.html; location ^~ /ooxx/{  auth_basic "Authorized users only";  auth_basic_user_file /home/.htpasswd; }
nginx关闭favicon.ico、robots.txt日志记录配置

nginx关闭favicon.ico、robots.txt日志记录配置

nginx日志最近发生大量访问favicon.ico无法找到的404错误日志,小编感觉很影响服务器性能,对于一个高并发的服务器每一个错误都会影响性能,所以需要关闭访问favicon.ico的日志记录功能。 代码如下:# 把以下配置放到 server {} 块.
nginx php-fpm环境中chroot功能的配置使用方法

nginx php-fpm环境中chroot功能的配置使用方法

nginx+php-fpm是现在配置php环境非常流行的组合之一。nginx以其并发能力强,轻巧,速度快而受到非常多人的青睐,php-fpm以其安全,处理php速度快而成为与nginx的最佳组合。php-fpm提供有一个非常重要的功能chroot,它可以把指定的网站完完全全限制在一个目录下,可以对系统和其它虚拟机起到很好的隔离效果,这对系统的安全无疑是加强了不少,下面介绍如何配置。
一次nginx 504 Gateway Time-out错误排查、解决记录

一次nginx 504 Gateway Time-out错误排查、解决记录

记一次莫名其妙的网站失去响应排查。之前网站一直是使用nginx做代理后端的apache运行php来提供服务。apache经常会不定期不定时间的出现不能服务失去响应,然后nginx出现"504 Gateway Time-out"查看错误日志也看不到任何东西,以为是apache的bug(其实不是,下面会说原因)。
Nginx隐藏index.php和Pathinfo模式配置例子

Nginx隐藏index.php和Pathinfo模式配置例子

参照一下对应修改,重启nginx即可 代码如下:server {        listen       80;        server_name www.leiyongbo.com www.leiyongbo.com;        root /usr/local/web;        index index.php;        error_page  400 /errpage/400.html;        error_page  403 /errpage/403.html;        error_page  404 /errpage/404.html;        error_page  405 /errpage/405.html;        ###########################################隐藏index.php        location / {                if (!-e $request_filename) {                        ###一级目录下                        rewrite ^/(.*)$ /index.php/$1 last;                        ###域名下的二级目录                        #rewrite ^/目录名/(.*)$ /目录名/index.php/$1 last;                }           }        ##########################################pathinfo 模式        location ~ .php($|/) {            fastcgi_pass   127.0.0.1:9000;            fastcgi_index  index.php;            fastcgi_split_path_info ^(.+.php)(.*)$;            fastcgi_param   PATH_INFO $fastcgi_path_info;            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;            include        fastcgi_params;        }}
在nginx中配置pathinfo模式支持thinkphp的URL重写

在nginx中配置pathinfo模式支持thinkphp的URL重写

最近一个项目中使用了ThinkPHP做为开发框架,URL上我们使用了PATHINFO模式,但是Nginx默认是不支持PATHINFO的,需要进行手动配置才可以,于是我们按照了以下方法进行了Nginx的PATHINFO支持配置:修改nginx.conf,找到server中的 location ~ .php${},修改为location ~ .php {},并在其中增加以下内容: 代码如下:set $path_info "";set $real_script_name $fastcgi_script_name;if ($fastcgi_script_name ~ "^(.+?.php)(/.+)$") {    set $real_script_name $1;    set $path_info $2;}fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;fastcgi_param SCRIPT_NAME $real_script_name;fastcgi_param PATH_INFO $path_info;不过无论我们如何测试,都发现PATHINFO模式总是不能正确运行,就算运行后,{:U}方法也总是出错,打印$_SERVER后发现PHP_SELF总是不对。但是依然PATHINFO不能正确正常工作,于是我们确定是ThinkPHP的配置问题,发现其实是ThinkPHP的_PHP_FILE的问题,在入口文件index.php中加入配置define('_PHP_FILE_',$_SERVER['SCRIPT_NAME']);,问题解决。如果$_SERVER['SCRIPT_NAME'] 路径也不对,请先替换为正确的文件路径。
nginx缓存不起作用问题解决方法

nginx缓存不起作用问题解决方法

1. nginx不缓存原因默认情况下,nginx是否缓存是由nginx缓存服务器与源服务器共同决定的, 缓存服务器需要严格遵守源服务器响应的header来决定是否缓存以及缓存的时常。header主要有如下: 代码如下:Cache-control:no-cache、no-store如果出现这两值,nginx缓存服务器是绝对不会缓存的 代码如下:Expires:1980-01-01如果出现日期比当前时间早,也不会缓存。