注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

itoedr的it学苑

记录从IT文盲学到专家的历程

 
 
 

日志

 
 

Nginx设置虚拟目录案例  

2014-01-25 13:48:06|  分类: nginx缓存加速 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

        虚拟服务器可拥有一个宿主目录和任意数量的其它发布目录。其它发布目录称为虚拟目录。nginx没有虚拟目录的说法,因为它本来就是完完全全根据目录来设计并工作的。本文介绍aliasroot的用法区别和Nginx设置alias实现虚拟目录。

  Nginx貌似没有虚拟目录的说法,因为它本来就是完完全全根据目录来设计并工作的。如果非要给nginx安上一个虚拟目录的说法,那就只有alias标 签比较"",干脆来说说alias标签和root标签的区别吧。最基本的区别:alias指定的目录是准确的,root是指定目录的上级目录,并且该上 级目录要含有location指定名称的同名目录。另外,根据前文所述,使用alias标签的目录块中不能使用rewritebreak

       看下配置:#本例相当于apaches下面的alias指令形成的虚拟目录.

******************

location
/abc/ {
    alias
/home/html/abc/;
}

******************

在这段配置下,http://test/abc/a.html就指定的是/home/html/abc/a.html。这段配置亦可改成

******************

location
/abc/ {
    root
/home/html/;
}

******************

这样,nginx就会去找/home/html/目录下的abc目录了,得到的结果是相同的。但是,如果我把alias的配置改成:

******************

location
/abc/ {
    alias
/home/html/def/;
}

******************

   那么nginx将会从/home/html/def/取数据,这段配置还不能直接使用root配置,如果非要配置,只有在/home/html/下建立 一个 def->abc的软link(快捷方式)了。一般情况下,在location /中配置root,在location /other中配置alias是一个好习惯。至于aliasroot的区别,我估计还没有说完全,如果在配置时发现奇异问题,不妨把这两者换换试试。

nginx alias的设置

nginx也有像apache的别名功能,格式为:

******************

location
~ /alias {
root
/home/www/default;
index
index.php;
}

******************

nginx在处理php脚本时,需要传递给fastcgi才能处理,所以比apache的别名设置多一个,下面我们以phpmyadmin别名设置为例:

******************

location
~ ^/phpmyadmin.+.php$ {
root
/home/www/default;
fastcgi_pass
127.0.0.1:9000;
fastcgi_index
index.php;
fastcgi_param
SCRIPT_FILENAME $document_root$fastcgi_script_name;
include
fastcgi_params;
}
location
~ /phpmyadmin {
root
/home/www/default;
index
index.php;
}

******************

  评论这张
 
阅读(58)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017