仓酷云

标题: 来一发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一键装置包》装置后实行上面):
  1. 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,以下:
  1. ./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
复制代码
大概会报以下毛病:
  1. 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):
  1. yum-yinstallperl-develperl-ExtUtils-Embed
复制代码
再次编译:
  1. 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):
  1. perl_set$urlsub{my$r=shift;my$re=lc($r->uri);return$re;};
复制代码
修正假造主机设置文件(如:/usr/local/nginx/conf/vhost/demo.linuxeye.com.conf):
  1. if($uri~[A-Z]){rewrite^(.*)$$urllast;}
复制代码
lua模块(保举!)
lua-nginx-module来自信牛agentzh的开源项目,在Nginx中嵌进Lua言语,使之能够撑持壮大Lua语法,以下:
  1. 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
复制代码
  1. 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:
  1. ./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):
  1. ./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