詳解使用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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM