nginx虚拟目录(alias与root的区别)

原文地址:http://blog.sina.com.cn/s/blog_6c2e6f1f0100l92h.html

nginx虚拟目录(alias与root的区别)

今天配置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/

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

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

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

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

4.      location ~ ^/awstats/ {
        root  /home/;

访问:http://test.com/awstats/ 实际访问的是/home/awstats/
借用ayou老师的一句话:
一般情况下,在location /中配置root,在location /other中配置alias是一个好习惯

时间: 2024-10-13 09:34:09

nginx虚拟目录(alias与root的区别)的相关文章

Nginx设置alias实现虚拟目录 alias与root的用法区别

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

Nginx 虚拟目录和虚拟主机的配置

nginx.conf 配置文件的几个常用命令 nginx 配置文件主要分为六个区域: main: 全局设置 events: nginx工作模式 http: http设置 sever: 主机设置 location: URL 匹配 upstream: 负载均衡服务器设置 下面,就以在 Windows 上使用 phpStudy 集成开发环境举例说明下 Nginx 的虚拟目录和虚拟主机是如何配置的: Nginx 虚拟目录配置 通俗地讲,虚拟目录的意思就是浏览器上输入的 URL 不一定就代表网站在文件系统

虚拟目录和应用程序的区别

在Windows 7 IIS7中,对服务器建立站点后,有二种添加子站点的方式 A. 虚拟目录 B. 应用程序 简单总结下二者之间的异同 A.虚拟目录 虚拟目录是指在站点下建立一个虚拟子目录,指定一个固定的物理路径做为站点的应用路径. 1. 虚拟目录与父级站点共用一个应用程序池 例如:站点TestWeb(c:\Inetpub\wwwroot\ TestWeb)下建立了SubTestA(D:\SubTestA)的虚拟目录 若TestWeb为设定了Framework V2.0,则SubTestA也必须

nginx 虚拟目录反向代理tomcat 应用程序

nginx 反向代理配置文件如下 user  nginx nginx; worker_processes  1; #error_log  logs/error.log; #error_log  logs/error.log  notice; #error_log  logs/error.log  info; #pid        logs/nginx.pid; events {     worker_connections  65535; } http {     include       

nginx虚拟目录配置

参考文章:https://blog.csdn.net/whatday/article/details/50649461 1. location ~ ^/awstats/ { root /home/awstats/; 访问:http://test.com/awstats/ 实际访问的是/home/awstats/awstats/ 2. location ~ ^/awstats/ { alias /home/ 访问:http://test.com/awstats/ 实际访问的是/home/ 3. l

Nginx虚拟目录支持PHP配置

感谢作者:http://blog.csdn.net/fangaoxin/article/details/7030139 location ~ ^/test/.+\.php$ { alias /var/www/html/test/; rewrite /test/(.*\.php?) /$1 break; fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME /var/www/html/

Apache配置虚拟目录和多主机头

呃,相当古老的话题了,不过网上的资料实在是太坑爹,无奈只能自己动手做个备忘了...这里不提虚拟目录和主机头的区别了,不懂得童鞋去面壁思过吧 多个虚拟目录 首先把Apache安装到D:\Program Files\Apache2.2目录下,端口号设置为8080,安装完成后默认的网站根目录为D:\Program Files\Apache2.2\htdocs,通常我们可以在htdocs下面建立个文件夹MySite,然后在浏览器输入:http://localhost:8080/MySite 这样就可以看

虚拟目录下apache点击报The requested URL* was not found on this server.

首先,我yum的httpd,把备份好的文件会存到/data/backup,并且在http.conf中配置虚拟目录 alias /mogodb/ "/data/backup" <Directory "/data/backup">     Options Indexes FollowSymLinks     AllowOverride All     Order allow,deny     Allow from all </Directory>

Tomcat:配置虚拟目录或主目录

为了在访问web服务的时候,不需要输入项目名,直接"/"就可以访问的话,需要设置虚拟目录或在ROOT下直接放项目 1.采用虚拟目录的方式 在Host中添加  <Context crossContext="true" docBase="E:/tomcatApp/JeasyCMS" path="/" reloadable="true"></Context> 或 在 conf/Catali