Nginx支援url不區分大小寫
將Windows下的專案(如:php)遷移到Linux下,由於Windows作業系統中,檔名是不區分大小寫的;而Linux系統是大小寫敏感,會導致有些網頁出現404情況。
那麼,怎樣Nginx實現url請求不區分大小寫呢?
下面是安裝lua模組的方式。lua-nginx-module來自大牛agentzh的開源專案,在Nginx中嵌入Lua語言,使之可以支援強大Lua語法。
安裝lua
1、下載lua
wget http://luajit.org/download/LuaJIT-2.0.2.tar.gz
2、安裝lua
tar -xvzf LuaJIT-2.0.2.tar.gz
cd LuaJIT-2.0.2
make && make install
3、配置lua
在當前使用者的home目錄下,編輯.bashrc,新增:
export LUAJIT_LIB="/usr/local/lib"
export LUAJIT_INC="/usr/local/include/luajit-2.0"
使配置立即生效,source .bashrc
下載nginx-lua
1).在opt目錄下,下載nginx-lua模組
wget https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz
wget https://github.com/openresty/lua-nginx-module/archive/v0.10.9rc7.tar.gz
2).解壓模組
tar -xvzf v0.3.0.tar.gz
tar -xvzf v0.10.9rc7.tar.gz
編譯安裝nginx-lua
1).進入nginx原始碼目錄
2).參考nginx -V中的引數,新增add-module編譯引數:
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module --add-module=/opt/ngx_devel_kit-0.3.0 --add-module=/opt/lua-nginx-module-0.10.9rc7
3).編譯
make
注意,一定不要make install
4).替換nginx二進位制檔案
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
關閉nginx服務
/usr/local/nginx/sbin/nginx -s stop
繼續替換檔案
cp ./objs/nginx /usr/local/nginx/sbin/
5).重新讀取庫檔案
ldconfig
6).啟動nginx
檢查配置檔案
/usr/local/nginx/sbin/nginx -t
啟動nginx
/usr/local/sbin/nginx
nginx-lua使用
修改nginx.conf檔案:
location / {
if ($uri ~ [A-Z]){
rewrite_by_lua ‘return ngx.redirect(string.lower(ngx.var.uri),ngx.HTTP_MOVED_PERMANENTLY)’;
}
}
#可能出現的錯誤
1).錯誤資訊
Nginx重新啟動給出如下資訊:
[emerg] 65814#0: getpwnam(“www”) failed
問題原因
沒有建立www這個使用者。
解決
建立組和使用者。
/usr/sbin/groupadd -f www
/usr/sbin/useradd -g www www
2).錯誤資訊
Nginx重新啟動會提示
/usr/local/luaNginx/sbin/nginx: error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file: No such file or directory
解決
查詢需要的元件路徑
find / -name libluajit-5.1.so.2
發現路徑為/usr/local/lib/
新增到/etc/ld.so.conf檔案下面
更新連線ldconfig
相關文章
- Nginx實現url請求不區分大小寫Nginx
- oracle 不區分大小寫Oracle
- 配置mysql不區分大小寫MySql
- mysql 表明不區分大小寫MySql
- MySQL不區分大小寫設定MySql
- java ArrayList排序不區分大小寫Java排序
- vim 查詢不區分大小寫
- python中不區分大小寫嗎Python
- 設定MYSQL不區分表大小寫MySql
- 配置CaseInsensitiveMap使key不區分大小寫
- 更改MYSQL資料庫不區分大小寫MySql資料庫
- Git 區分大小寫Git
- MySQL表名不區分大小寫的設定方法MySql
- 最新版idea不區分大小寫設定Idea
- 密碼區分大小寫密碼
- mongodb如何不區分大小寫MongoDB
- MySQL binary 區分大小寫MySql
- MySQL表名區分大小寫MySql
- 查詢區分大小寫 (轉)
- nginx url重寫Nginx
- Mysql模糊查詢預設是不區分字母大小寫的MySql
- 設定Oracle的使用者密碼不區分大小寫Oracle密碼
- 在oracle10g中可使得排序不區分大小寫Oracle排序
- 使用漢語環境時,grep命令竟然不區分大小寫
- SQL Server 解決不區分中英文大小寫方法SQLServer
- 模糊查詢區分大小寫嗎?
- 短視訊app開發,顯示文字高亮,不區分大小寫APP
- Mysql 的編碼方式使得欄位內容不區分大小寫MySql
- 修改Oracle11g使用者密碼不區分大小寫Oracle密碼
- Sql Server 強制大小寫區分方法SQLServer
- 使MySQL查詢區分大小寫(轉)MySql
- git不區分檔名大小寫這種坑當然要跳出來Git
- Nginx實現URL重寫Nginx
- MySQL模糊查詢(like)時區分大小寫MySql
- 更改MySql表和欄位區分大小寫MySql
- nginx TP5 URL 重寫Nginx
- Nginx實戰(二) URL重寫Nginx
- Java區分大小寫字母數字和符號Java符號