仓酷云
标题:
来一发CentOS下Nginx完成url哀求不辨别巨细写
[打印本页]
作者:
小女巫
时间:
2015-1-14 20:25
标题:
来一发CentOS下Nginx完成url哀求不辨别巨细写
欢迎大家来到仓酷云论坛!
假如你将跑在Windows下的项目(如:php)迁徙到Linux下,因为Windows操纵体系中,文件名是不辨别巨细写的;而Linux体系是巨细写敏感,会招致有些网页呈现404情形。
办理***有也许4种:
1、urlrewrite
2、perl模块
3、lua模块
4、ngx_http_lower_upper_case
第一种***合用于有划定规矩的大概较少的url必要转换,假如有大批并没有划定规矩的请用上面几种***
第2、3、四种***条件是Linux体系当地文件是小写,道理是将url哀求转换成小写来处置
perl模块
(
不保举!Nginx官网已声名perl模块存在内存毛病的大概
),***以下(《lnmp一键装置包》装置后实行上面):
cdlnmp/src/nginx-1.4.4makeclean#扫除已编译出的nginx#/usr/local/nginx/sbin/nginx-V#猎取已编译参数nginxversion:nginx/1.4.4builtbygcc4.4.720120313(RedHat4.4.7-3)(GCC)TLSSNIsupportenabledconfigurearguments:--prefix=/usr/local/nginx--user=www--group=www--with-http_stub_status_module--with-http_ssl_module--with-http_flv_module--with-http_gzip_static_module--with-ld-opt=-ljemalloc
复制代码
在已编译的参数前面加上–with-http_perl_module,以下:
./configure--prefix=/usr/local/nginx--user=www--group=www--with-http_stub_status_module--with-http_ssl_module--with-http_flv_module--with-http_gzip_static_module--with-ld-opt=-ljemalloc--with-http_perl_module
复制代码
大概会报以下毛病:
CantlocateExtUtils/Embed.pmin@INC(@INCcontains:/usr/local/lib64/perl5/usr/local/share/perl5/usr/lib64/perl5/vendor_perl/usr/share/perl5/vendor_perl/usr/lib64/perl5/usr/share/perl5.).BEGINfailed--compilationaborted../configure:error:perlmoduleExtUtils::Embedisrequired
复制代码
办理***(CentOS):
yum-yinstallperl-develperl-ExtUtils-Embed
复制代码
再次编译:
makeclean./configure--prefix=/usr/local/nginx--user=www--group=www--with-http_stub_status_module--with-http_ssl_module--with-http_flv_module--with-http_gzip_static_module--with-ld-opt=-ljemalloc--with-http_perl_modulemakecp/usr/local/nginx/sbin/nginx/usr/local/nginx/sbin/nginx$(date+%m%d)#备份nginx原文件servicenginxstopmakeinstall#间接装置,假如只掩盖nginx,会有报错/usr/local/nginx/sbin/nginx-t
复制代码
修正设置主文件(/usr/local/nginx/conf/nginx.conf):
perl_set$urlsub{my$r=shift;my$re=lc($r->uri);return$re;};
复制代码
修正假造主机设置文件(如:/usr/local/nginx/conf/vhost/demo.linuxeye.com.conf):
if($uri~[A-Z]){rewrite^(.*)$$urllast;}
复制代码
lua模块
(保举!)
lua-nginx-module来自信牛agentzh的开源项目,在Nginx中嵌进Lua言语,使之能够撑持壮大Lua语法,以下:
cdlnmp/srcwgethttp://luajit.org/download/LuaJIT-2.0.2.tar.gzwgethttps://github.com/simpl/ngx_devel_kit/archive/v0.2.19.tar.gz#ngx_devel_kitwgethttps://github.com/chaoslawful/lua-nginx-module/archive/v0.9.2.tar.gz#nginx_lua_moduletarxzfLuaJIT-2.0.2.tar.gztarxzfv0.2.19.tar.gztarxzfv0.9.2.tar.gzcdLuaJIT-2.0.2make&&makeinstallexportLUAJIT_LIB=/usr/local/libexportLUAJIT_INC=/usr/local/include/luajit-2.0
复制代码
cdnginx-1.4.4makeclean#扫除已编译出的nginx#/usr/local/nginx/sbin/nginx-V#猎取已编译参数nginxversion:nginx/1.4.4builtbygcc4.4.720120313(RedHat4.4.7-3)(GCC)TLSSNIsupportenabledconfigurearguments:--prefix=/usr/local/nginx--user=www--group=www--with-http_stub_status_module--with-http_ssl_module--with-http_flv_module--with-http_gzip_static_module--with-ld-opt=-ljemalloc
复制代码
从头编译Nginx:
./configure--prefix=/usr/local/nginx--user=www--group=www--with-http_stub_status_module--with-http_ssl_module--with-http_flv_module--with-http_gzip_static_module--with-ld-opt=-ljemalloc--add-module=../lua-nginx-module-0.9.2--add-module=../ngx_devel_kit-0.2.19makecp/usr/local/nginx/sbin/nginx/usr/local/nginx/sbin/nginx$(date+%m%d)#备份nginx原文件servicenginxstopmakeinstall#间接装置,假如只掩盖nginx,大概会报错ldconfig#从头读取库文件,不然报错/usr/local/nginx/sbin/nginx-t
复制代码
修正设置文件(如:/usr/local/nginx/conf/vhost/demo.linuxeye.com.conf):
./configure--prefix=/usr/local/nginx--user=www--group=www--with-http_stub_status_module--with-http_ssl_module--with-http_flv_module--with-http_gzip_static_module--with-ld-opt=-ljemalloc--with-http_perl_module0
复制代码
ngx_http_lower_upper_case模块
参考:https://github.com/replay/ngx_http_lower_upper_case
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!
作者:
分手快乐
时间:
2015-1-16 17:52
标题:
来一发CentOS下Nginx完成url哀求不辨别巨细写
一些显而易见的小错误还是用vi改正比较方便。以后的大一点的程序就得在Linux下调试了,因为有的头文件在VC里面说找不到。?
作者:
飘灵儿
时间:
2015-1-23 22:37
Linux高手更具有鼓励新手的文化精神。如何在Linux社区获得帮助,需要说明的是你要有周全的思考,准备好你的问题,不要草率的发问。
作者:
谁可相欹
时间:
2015-1-31 21:57
在学习linux的工程中,linux学习方法有很多种,这里是小编的学习心得,给大家拿出来分享一下。
作者:
山那边是海
时间:
2015-2-7 03:30
了解Linux的网络安全,系统的安全,用户的安全等。安全对于每位用户,管理员来说是非常重要的。
作者:
精灵巫婆
时间:
2015-2-20 16:49
一定要学好命令,shell是命令语言,命令解释程序及程序设计语言的统称,shell也负责用户和操作系统之间的沟通。
作者:
若相依
时间:
2015-3-6 19:24
即便是非英语国家的人发布技术文档,Linux也都首先翻译成英语在国际学术杂志和网络上发表。
作者:
柔情似水
时间:
2015-3-13 08:08
然我们对Linux的学习首先是通过对它的产生,发展,到今天仍然在不断完善开始的。
作者:
金色的骷髅
时间:
2015-3-20 17:20
最好先搜寻一下论坛是否有您需要的文章。这样可以获得事半功倍的效果。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2