使用nginx內置$request_filename變量更容易管理nginx

一,前言

時間長的項目,因爲之前劃分的分區目錄,磁盤快滿了,不能在把資源放在這個目錄上,所以新放了一個硬盤進去重新分區格式化掛載。

新的資源都放到新的磁盤目錄test-2上,當用戶訪問test-1時候,不存在這個資源,返回test-2的資源給用戶。

舊磁盤的目錄=test-1  (空間不足)

新磁盤的目錄=test-2(空間充裕)

 

二,nginx變量

使用 !-e $request_filename 變量

-e表示只要filename存在,則爲真,不管filename是什麼類型,當然這裏加了!就取反

額外的一些
-e filename 如果 filename存在,則爲真
-d filename 如果 filename爲目錄,則爲真 
-f filename 如果 filename爲常規文件,則爲真
-L filename 如果 filename爲符號鏈接,則爲真
-r filename 如果 filename可讀,則爲真 
-w filename 如果 filename可寫,則爲真 
-x filename 如果 filename可執行,則爲真
-s filename 如果文件長度不爲0,則爲真
-h filename 如果文件是軟鏈接,則爲

 

三,測試操作

vim /usr/local/nginx/conf/nginx.conf

1,新增配置如下

       if (!-e $request_filename) {
           root /test-1;
       }

       if (!-e $request_filename) {
           root /test-2;
       }

 

2,創建測試目錄和創建html頁面

mkdir /test-{1..2}

echo test-1 > /test-1/test-1.html
echo test-2 > /test-2/test-2.html

 

3, 重啓nginx服務

/usr/local/nginx/sbin/nginx  -s reload

 

4,測試

curl localhost


curl localhost/test-1.html
curl localhost/test-2.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章