Nginx中URL不区分大小写
本模块允许在Nginx中直接执行Prel,或者通过SSI调用Perl。
默认是不会编译进Nginx的,如果你要使用,则要在编译安装Nginx指定:
./configure --with-http_perl_module
另外:操作系统中必须安装:Perl5.6.1以上版本
已知问题:
1 ) 如果Perl模块执行长时间操作,例如:DNS查询、数据库查询等,运行Perl脚本的工作进程将一直处于阻塞状态,因此内置的Perl脚本应该非常简单,执行尽可能快。
2)Nginx在通过“Kill -HUP <pid>”命令重新加载配置文件时,可能会导致内存泄露。
详细配置方法:
1.增加一个方法
perl_set $url ‘ sub { my $r = shift; my $re = lc($r->uri); return $re; } ‘;
2.增加一个判断条件
if ($uri ~ [A-Z]){ rewrite ^(.*)$ $url last; }
说明:
Perl需要Perl 5.6.1以上版本支持.
以下为一个线上的实例:
cat site/www.test.net.conf
perl_set $url ‘
sub {
my $r = shift;
my $re = lc($r->uri);
return $re;
}
‘;
server
{
listen 80;
server_name www.test.net;
index index.html index.htm ;
root /www/test/www.test.net/web20_static;
if ($uri ~ [A-Z]){
rewrite ^(.*)$ $url last;
}
location ~*\.(gif|jpg|jpeg|png|bmp|swf|ico|html|htm)$
{
expires 10d;
}
location ~*\.(js|css)?$
{
expires 5d;
}
error_page 404 = /404.htm;
access_log /usr/local/nginx/logs/access.log main;
access_log off;
}
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。