返回列表

nginx配置之alias

默认分类 2014/01/28 09:52

当狂报404错误时记得查看一下日志,里面记录了真实的访问地址


ginx-1.4.4\logs\error.log

原文地址:http://chenwenming.blog.51cto.com/327092/696601

今天配置awstats,awstats创建出的文件目录在/home/awstats下,在nginx中加入配置后狂报404,发现还是忽略了root和alias的区别,特将修改配置记录如下:

1.失败:

server {  
    server_name  test.com;
    charset utf-8,GB2312;
    index  index.html;

    location / {
        root html;
        access_log logs/access.log main;
    }
    location ~ ^/awstats/ {
        root  /home/awstats/;
        index  index.html;
        access_log off;
        error_log off;
        charset gb2312;
    }
}

2.失败:

server {
    server_name  test.com;
    charset utf-8,GB2312;
    index  index.html;

    location / {
        root html;
        access_log logs/access.log main;
    }
    location ~ ^/awstats/ {
        alias  /home/;
        index  index.html;
        access_log off;
        error_log off;
        charset gb2312;
    }
}

3.成功:

server {  
    server_name  test.com;
    charset utf-8,GB2312;
    index  index.html;

    location / {
        root html;
        access_log logs/access.log main;
    }
    location ~ ^/awstats/ {
        alias  /home/awstats/;
        index  index.html;
        access_log off;
        error_log off;
        charset gb2312;
    }
} 

4.成功:

server {
    server_name  test.com;
    charset utf-8,GB2312;
    index  index.html;

    location / {
        root html;
        access_log logs/access.log main;
    }
    location ~ ^/awstats/ {
        root  /home/;
        index  index.html;
        access_log off;
        error_log off;
        charset gb2312;
    }
}

从以上例子很明显看出,还是对root和alias的概念搞混了~ 1. location ~ ^/awstats/ {
root /home/awstats/;
访问:http://test.com/awstats/ 实际访问的是/home/awstats/awstats/

  1. location ~ ^/awstats/ {  
    alias  /home/  
    

    访问:http://test.com/awstats/ 实际访问的是/home/

  2. location ~ ^/awstats/ {                        #使用alias时目录名后面一定要加“/”  
    alias  /home/awstats/;  
    

转载:http://blog.sina.com.cn/s/blog_6c2e6f1f0100l92h.html 访问:http://test.com/awstats/ 实际访问的是/home/awstats/

  1. location ~ ^/awstats/ {
    root /home/;
    访问:http://test.com/awstats/ 实际访问的是/home/awstats/

借用ayou老师的一句话:

一般情况下,在location /中配置root,在location /other中配置alias是一个好习惯