Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29335535
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: 系统运维

2010-06-05 10:36:36

Nginx配置虚拟目录

时间:2010-06-05

需求:

    提供一个JSP的虚拟主机。

我计划用nginx提供80服务。后端带Resin跑多个虚拟主机。虚拟主机是可以配置给多域名解析。

之前我们有配置过resin 的虚拟主机的。也有配置其虚拟目录其配置是这样的

        D:\myweb\proj1

       

            login.jsp

            UTF-8

           

           

       

       

            login.jsp

            UTF-8

           

           

             

   

   

        D:\myweb\proj2

       

            login.jsp

            UTF-8

           

            

       

       

            login.jsp

            UTF-8

           

           

             

 

解释一下:定义了两个虚拟主机这样的话就可以绑定两个域名即一个IP绑定多个域名。一般的空间提供商们也是这样来配置的。而且同一级域名下面还可以配置虚拟目录。比如像同样的sina.cn域名下面可以定义如下的两个虚拟目录www.sina.cn/blog/      

   

这样即在同一个域名下面跑两个虚拟目录!

 

现在来看一下nginx如何来配置这个呢?

 

 

 

 

 

 

 

上一篇文章我们介绍了nginx配置虚拟主机的方法现在来配置一下如何配置虚拟目录

比如说我们的虚拟主机域名为 我现在想要实现这种效果

如何配置虚拟目录呢?

 

 

资料引入:

    最基本的区别:alias指定的目录是准确的,root是指定目录的上级目录,并且该上级目录要含有location指定名称的同名目录。另外,根据前文所述,使用alias标签的目录块中不能使用rewritebreak

说不明白,看下配置:

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

在这段配置下,就指定的是/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的区别,我估计还没有说完全,如果在配置时发现奇异问题,不妨把这两者换换试试。

 

 

 

心得:location / {} 里面使用root关键字。而在其他的URI配置中使用alias

Alias 是准确定位。跟URI无关

ROOT  URI有关。

 

 

 

 

虚拟主机目录:D:\myweb\proj3

虚拟目录1   D:\myweb\proj3\app1

虚拟目录2   D:\myweb\proj3\app2

 

来看我们的配置

 

server {

    listen 80; 

    server_name ;   

    root    D:\myweb\proj3;

    location / {       

       index index.html index.htm;

    }

    location /app1/{

       alias D:\myweb\proj3\app1\;

       index index.html index.htm;

       break;

    }

    location /app2/{

       alias D:\myweb\proj3\app2\;

       index index.html index.htm;

       break;

    }

    location ~*\.(gif|jpg|png)$ {

       expires  30d;

    }

}

这样的话我们就可以配置出来像: 这样的目录值的!

 

笔记:

    推荐配置在 /app1/ 里面使用alias哦!不要使用root

 

 

 

阅读(1546) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~