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
相關文章
- python中不區分大小寫嗎Python
- MySQL不區分大小寫設定MySql
- 配置CaseInsensitiveMap使key不區分大小寫
- 區分大小寫
- Git 區分大小寫Git
- 最新版idea不區分大小寫設定Idea
- MySQL表名不區分大小寫的設定方法MySql
- [20220826]ls顯示檔案不區分大小寫.txt
- SQL Server 解決不區分中英文大小寫方法SQLServer
- mongodb如何不區分大小寫MongoDB
- Mysql模糊查詢預設是不區分字母大小寫的MySql
- 設定Oracle的使用者密碼不區分大小寫Oracle密碼
- 模糊查詢區分大小寫嗎?
- 短視訊app開發,顯示文字高亮,不區分大小寫APP
- Nginx實現URL重寫Nginx
- nginx TP5 URL 重寫Nginx
- Git中如何設定區分檔名大小寫Git
- Nginx URL重寫規則配置詳解Nginx
- MySQL的where條件字串區分大小寫的問題MySql字串
- 從字串A中刪除字串B中存在的字母(不區分大小寫)C語言實現字串C語言
- ThinkPHP5.0 Linux Apache/Nginx重寫URL配置PHPLinuxApacheNginx
- 關於sqlserver字元型別查詢條件區分大小寫SQLServer字元型別
- Oracle靜態監聽中SID_NAME區分大小寫嗎?Oracle
- git提交時支援檔名大小寫的修改Git
- SDWebImage支援URL不變時更新圖片內容Web
- Python實用技法第25篇:正則:以不區分大小寫的方式對文字做查詢和替換Python
- WebMagic抓取 table分頁資料, table分頁時,URL不變Web
- Http 請求 header 大小寫有區別嗎?HTTPHeader
- 攻防世界 web高手進階區 10分題 urlWeb
- MySQL 官宣:支援讀寫分離了!!MySql
- 配置nginx支援Nginx
- nginx下thinkphp的URL重定向NginxPHP
- NGINX配置SSL支援Nginx
- nginx配置 laravel 支援NginxLaravel
- django url的分發Django
- 字串-大小寫轉換字串
- url和uri區別
- 檢查 http url 下載檔案的大小(qbit)HTTP