当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪(图)nginx带问号(?)带参数的rewrite规则的书写方法      nginx带问号(?)带参数的rewrite规则的书写方法,很不错的文章,感兴趣的朋友可以参考下。 今天收到一个需求,要根据程序员的需要给定php的参数来跳转到指定的页面,安装常规的rewrite规则,如.........
    ▪(图)配置nginx不记录php文件日志(过滤php日志)          今天收到同事的一个需求,在web生成的统计日志中不要记录action.php、soft.php、new.php,logo.jpg这三个php文件和logo文件的日志,降低统计时候读取日志消耗的性能,本来以后直接加个location .........
    ▪nginx中HTTP/1.1 405 Method not allowed 的解决方法      环境:nginx 1.0.10 今天调试一个站点时,发现用post方式去请求一个静态页面时,返回 HTTP/1.1 405 Method not allowed 状态,无法正常显示页面。 这里提供下网上的一些解决方法,供大家参考。 方法.........

[1](图)nginx带问号(?)带参数的rewrite规则的书写方法
    来源: 互联网  发布时间: 2013-12-24

nginx带问号(?)带参数的rewrite规则的书写方法,很不错的文章,感兴趣的朋友可以参考下。

今天收到一个需求,要根据程序员的需要给定php的参数来跳转到指定的页面,安装常规的rewrite规则,如:rewrite ^/change.php?id=weibo  http://www.weibo.com/; (错误的示范)
这样的跳转起不了左右,因为nginx会把后面的一整串都认为是URL,但是在浏览器上去,只会访问到change.php这个文件。

那只能想别的方法了,仔细看了nginx的各项参数,注意到里面的
$query_string      解释:请求行中(GET请求)的参数;(配置1)
$request_uri  解释:包含请求参数的原始URI,不包含主机名,如:"/change.php?id=163",不能修改。
(配置2)
那我们就根据参数来判断是否要跳转。

配置如下
(配置1):


方便复制:

代码如下:

if ( $query_string ~ "id=(baidu)(.*)$" )
        {
        rewrite ^/css/style.css http://www.baidu.com/;
        }

if ( $query_string ~ "id=(qq|QQ)(.*)$" )
        {
        rewrite ^/ http://www.qq.com/;
        }

(配置2):

方便复制:

代码如下:

if ( $request_uri ~ "/(.*).html\?id=163" )
        {
        rewrite ^/ http://www.163.com/;
        }

# 直接跳转到163 ;
if ( $request_uri ~ "/(.*).html\?id=sohu" )
        {
        rewrite ^/(.*).html /css/style.css;
        }
#    *.html?id=sohu 跳转到/css/style.css;伪静态

测试:
1,测试跳转到百度:
 
2,测试跳转到QQ:
 
3,测试跳转到微博:

4,测试跳转到163:


从测试结果来看,配置成功。

原文作者:李坤山
博客链接:http://blog.163.com/a12333a_li/


    
[2](图)配置nginx不记录php文件日志(过滤php日志)
    来源: 互联网  发布时间: 2013-12-24

    今天收到同事的一个需求,在web生成的统计日志中不要记录action.php、soft.php、new.php,logo.jpg这三个php文件和logo文件的日志,降低统计时候读取日志消耗的性能,本来以后直接加个location 就可以搞定,后来发现并不是这么简单;

错误配置:


    这样的配置,发现只有访问logo.jpg的日志被记录到data.log.no的日志中,*.php的日志依然被记录到data.log日志中。
    理解:因为在加进去的规则前面有个localtion ~ .*\.php?$ 所以php文件一进来就被这个location规则给匹配了,并没有经过我们后来定义的那个规则里面,所以日志还是记录在data.log里面。而logo.jpg则匹配后来的规则,所以被记录。

于是,把规则提到最前面,让他优先匹配(错误配置)


日志是被记录了,可是php文件 不能访问,直接会提示下载,这样的配置php没有发送给后端的php-cgi处理,把php的处理也加进去试试。

解决方法(注意location的顺序):

 
重启nginx,日志记录分开了。

作者:李坤山
博客链接:http://blog.163.com/a12333a_li/


    
[3]nginx中HTTP/1.1 405 Method not allowed 的解决方法
    来源: 互联网  发布时间: 2013-12-24

环境:nginx 1.0.10
今天调试一个站点时,发现用post方式去请求一个静态页面时,返回 HTTP/1.1 405 Method not allowed 状态,无法正常显示页面。
这里提供下网上的一些解决方法,供大家参考。

方法一
 

代码如下:
server
{
   listen       80;
   server_name  test.baidu.com;
   index index.html index.htm index.php;
   root  /www/test.baidu.com;
   error_page   405 =200 @405;
   location @405
   {
       root  /www/test.baidu.com;
   }    
  location ~ .*.php?$
   {
       include conf/fcgi.conf;    
       fastcgi_pass  127.0.0.1:9000;
       fastcgi_index index.php;
   }
}

备注:用在我的环境无法解决。

方法二
编辑nginx源代码
vi /root/soft/nginx1.0.10/src/http/modules/ngx_http_static_module.c
 

代码如下:
注释掉原有的一段话
/*  
 if (r->method & NGX_HTTP_POST) {
        return NGX_HTTP_NOT_ALLOWED;
       }
*/

然后按照原来的编译参数  ./configuer  make  不用make install 否则会覆盖原来的一些配置文件。
执行
 

代码如下:
cp  $nginx_dir/sbin/nginx  $nginx_dir/sbin/nginx.bak
cp ./objs/nginx   $nginx_dir/sbin/nginx
$nginx_dir/sbin/nginx -s reload

备注:用在我的环境无法解决。

方法三
 

代码如下:
server
{
   listen       80;
   server_name  test.baidu.com;
   index index.html index.htm index.php;
   root  /www/test.baidu.com;
     location /
    {
      root /www/test.baidu.com;
      error_page 405 =200 http://$host$request_uri;
      }
      location ~ .*.php?$
   {
       include conf/fcgi.conf;   
       fastcgi_pass  127.0.0.1:9000;
       fastcgi_index index.php;
   }
}

备注:用在我的环境可以解决。


    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪让代码整洁、过程清晰的BASH Shell编程技巧
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3