1. 程式人生 > >CentOS 7.4 Tengine安裝配置詳解(三)

CentOS 7.4 Tengine安裝配置詳解(三)

location、echo、fancy

九、根據HTTP響應狀態碼自定義錯誤頁:

1、未配置前訪問一個不存在的頁面:http://192.168.1.222/abc/def.html,按F12後刷新頁面

技術分享圖片

2、server{}配置段中新增如下location

server {

listen 80;

server_name localhost;

location /bbs {

root /vhosts/bbs;

error_page 404 404/404.html;

}

}

3、創建目錄,並上傳自定義錯誤頁:# mkdir -pv /vhosts/bbs/bbs/404

技術分享圖片

4、重載服務:# nginx -t # nginx -s reload # ss -tunlp | grep :80

5、訪問測試頁:

http://192.168.1.222/abc.html

技術分享圖片

http://192.168.1.222/bbs/abc.html --> 自動跳轉至http://192.168.1.222/bbs/404/404.html

技術分享圖片

F12後刷新頁面:

技術分享圖片


十、基於fancy實現索引目錄(適用於下載站):

1、下載ngx-fancyindex

# yum -y install git

# cd /tmp

# git clone https://github.com/aperezdc/ngx-fancyindex.git ngx-fancyindex

技術分享圖片

2、使用Tenginedso_tool工具編譯第三方模塊:

# dso_tool -h

技術分享圖片

# dso_tool --add-module=/tmp/ngx-fancyindex

技術分享圖片

# ls /usr/local/tengine/modules | grep fancyindex --> ngx_http_fancyindex_module.so

3、events{}配置段後新增如下代碼:

dso {

load ngx_http_fancyindex_module.so;

}

4、server{}配置段中新增如下location

server {

listen 80;

server_name localhost;

location /software {

root /download;

fancyindex on; #

啟用fancy目錄索引功能

fancyindex_exact_size off; # 不顯示文件的精確大小,而是四舍五入,單位是KBMBGB

fancyindex_localtime on; # 默認為off,顯示的是GMT時間,改為on,顯示的是服務器時間

}

}

5、創建目錄:# mkdir -pv /download/software,並上傳軟件

技術分享圖片

6、重載服務:# nginx -t # nginx -s reload # ss -tunlp | grep :80

7、檢查ngx_http_fancyindex_module模塊是否已經裝載:

# nginx -m --> ngx_http_fancyindex_module (shared, 3.1)

8、訪問測試頁:http://192.168.1.222/software

技術分享圖片


十一、裝載echo模塊:

1、下載echo-nginx-module

# yum -y install git

# cd /tmp

# git clone https://github.com/openresty/echo-nginx-module.git

技術分享圖片

2、使用Tenginedso_tool工具編譯第三方模塊:

# dso_tool --add-module=/tmp/echo-nginx-module

# ls /usr/local/tengine/modules | grep echo --> ngx_http_echo_module.so

3、events{}配置段後新增如下代碼:

dso {

load ngx_http_echo_module.so;

}

4、server{}配置段中新增如下location

server {

listen 80;

server_name www.qiuyue.com;

access_log /usr/local/tengine/logs/www.qiuyue.com-access.log main;

location /echo {

default_type "text/plain"; # 不指定default_type,會提示下載文件,而非直接輸出在瀏覽器中

echo "host --> $host"; # 請求主機頭字段,否則為服務器名稱

echo "server_name --> $server_name"; # 服務器名稱

echo "server_addr --> $server_addr"; # 服務器IP地址

echo "remote_addr --> $remote_addr"; # 客戶端IP地址

echo "uri --> $uri"; # 不帶請求參數的當前URI$uri不包含主機名

echo "document_uri --> $document_uri"; # $uri含義相同

echo "request_uri --> $request_uri"; # 帶請求參數的原始URI,不包含主機名

echo "request_filename --> $request_filename"; # 當前請求的文件路徑

echo "document_root --> $document_root"; # 當前請求在root指令中指定的值

}

}

5、重載服務:# nginx -t # nginx -s reload # ss -tunlp | grep :80

6、檢查ngx_http_echo_module模塊是否已經裝載:

# nginx -m --> ngx_http_echo_module (shared, 3.1)

7、修改本地Windows 10系統的hosts文件:

C:\Windows\System32\drivers\etc\hosts,末尾新增代碼:192.168.1.222 www.qiuyue.com

8、訪問測試頁:http://www.qiuyue.com/echo

技術分享圖片


十二、location的匹配順序(匹配順序與在配置文件中定義的順序無關):

1、方便演示效果,裝載echo模塊

2、server{}配置段中新增如下location

server {

listen 80;

server_name www.qiuyue.com;

access_log /usr/local/tengine/logs/www.qiuyue.com-access.log main;

default_type "text/plain";

location = / {

# 精確匹配,匹配優先級最高,匹配成功則不再向下繼續匹配

echo 1;

}

location / {

# 通用匹配,匹配優先級最低,匹配所有請求

# 如果有更長的同類型的表達式,則優先匹配更長的表達式

# 如果有正則表達式可以匹配,則優先匹配正則表達式

echo 2;

}

location /documents/ {

# 匹配所有以/documents/開頭的請求

# 如果有更長的同類型的表達式,則優先匹配更長的表達式

# 如果有正則表達式可以匹配,則優先匹配正則表達式

echo 3;

}

location ^~ /static/ {

# 匹配所有以/static/開頭的請求,匹配優先級第2高,匹配成功則不再向下繼續匹配

echo 4;

}

location ~ \.(txt|css)$ {

# 匹配所有以txtcss結尾的請求,區分字符大小寫的正則匹配

echo 5;

}

location ~* \.(txt|css)$ {

# 匹配所有以txtcss結尾的請求,不區分字符大小寫的正則匹配

echo 6;

}

}

3、重載服務:# nginx -t # nginx -s reload # ss -tunlp | grep :80

4、修改本地Windows 10系統的hosts文件:

C:\Windows\System32\drivers\etc\hosts,末尾新增代碼:192.168.1.222 www.qiuyue.com

5、訪問測試頁:

http://www.qiuyue.com

技術分享圖片

http://www.qiuyue.com/static/1.js

技術分享圖片

http://www.qiuyue.com/static/1.txt

技術分享圖片

http://www.qiuyue.com/documents/1.txt

技術分享圖片

http://www.qiuyue.com/documents/1.html

技術分享圖片

http://www.qiuyue.com/notes/1.txt

技術分享圖片

http://www.qiuyue.com/notes/1.TXT

技術分享圖片

http://www.qiuyue.com/notes/1.chm

技術分享圖片

匹配優先級說明:=^~~~*/path//


CentOS 7.4 Tengine安裝配置詳解(三)