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

posted @ 2022-01-25 18:05  树下水月  阅读(1069)  评论(0编辑  收藏  举报