CentOS 7.4 Tengine安裝配置詳解(三)
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、使用Tengine的dso_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; #
fancyindex_exact_size off; # 不顯示文件的精確大小,而是四舍五入,單位是KB、MB和GB
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、使用Tengine的dso_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)$ {
# 匹配所有以txt和css結尾的請求,區分字符大小寫的正則匹配
echo 5;
}
location ~* \.(txt|css)$ {
# 匹配所有以txt和css結尾的請求,不區分字符大小寫的正則匹配
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安裝配置詳解(三)