samsungsamsung 发表于 2016-12-24 10:49:17

Nginx 配置虚拟主机1

  Vps 上安装了 nginx。用多个子域名,每个子域名到不同的目录。
  如:


[*]  
[*]http {   
[*]    server {   
[*]        listen 80;   
[*]        server_name a.chenlb.com;   
[*]        access_log logs/a.access.log main;   
[*]  
[*]        server_name_in_redirect off;   
[*]  
[*]        location / {   
[*]                index index.html;   
[*]                root /home/www/host_a/;   
[*]        }   
[*]    }   
[*]  
[*]    server {   
[*]        listen 80;   
[*]        server_name b.chenlb.com;   
[*]        access_log logs/b.access.log main;   
[*]  
[*]        server_name_in_redirect off;   
[*]  
[*]        location / {   
[*]                index index.html;   
[*]                root /home/www/host_b/;   
[*]        }   
[*]    }   
[*]}  


http {
server {
listen 80;
server_name a.chenlb.com;
access_log logs/a.access.log main;
server_name_in_redirect off;
location / {
index index.html;
root /home/www/host_a/;
}
}
server {
listen 80;
server_name b.chenlb.com;
access_log logs/b.access.log main;
server_name_in_redirect off;
location / {
index index.html;
root /home/www/host_b/;
}
}
}

  结果发现用 b.chenlb.com 还是指到 host_a 目录。后来看了官方示例:http://wiki.nginx.org/NginxVirtualHostExample,提到有个 default 的匹配,如:


[*]  
[*]http {   
[*]  server {   
[*]    listen          80 default;   
[*]    server_name     _;   
[*]    access_log      logs/default.access.log main;   
[*]  
[*]    server_name_in_redirect  off;   
[*]  
[*]    location / {   
[*]      index index.html;   
[*]      root  /var/www/default/htdocs;   
[*]    }   
[*]  }   
[*]}  


http {
server {
listen          80 default;
server_name   _;
access_log      logs/default.access.log main;
server_name_in_redirectoff;
location / {
index index.html;
root/var/www/default/htdocs;
}
}
}

  加上这个 default 就可使 a.chenlb.com 和 b.chenlb.com 正常工作了。
页: [1]
查看完整版本: Nginx 配置虚拟主机1