Nginx虚拟主机配置

nginx的虚拟主机就是通过nginx.conf中server节点指定的,想要设置多个虚拟主机,配置多个server节点即可

先看一个最简单的虚拟主机配置示例

server { 
listen 80;                                      #监听的是80端口
server_name www.wl.com;         #指定这个虚拟主机名为www.wl.com,当用户访问www.wl.com时,就有这个虚机主机进行处理

location / {                                   #因为所有请求都是/开头的,所以这行表示匹配所有请求
index index.html;                         #指定此虚拟主机的默认首页为index.html
root /home/www/host_a/;            #指定此虚拟主机的物理根目录为/home/www/host_a/    即指定 location / 在那个物理目录
} 
}

虚拟主机名可以有4种格式:

(1)准确的名字,例如此例中的a.test.com

(2)*号开头的,例如 *.test.com

(3)*号结尾的,例如 mail.*

(4)正则表达式形式,例如

server_name ~^www\d+\.test\.com$; 

        注意,使用正则表达式形式时,必须以'~'开头

server_name也可以同时指定多个,例如:

server_name test.com www.test.com *.test.com;

                这时优先级为:

                        (1)确切的名字

                        (2)最长的以*起始的通配符名字

                        (3)最长的以*结束的通配符名字

                        (4)第一个匹配的正则表达式名字

案例

(1)对两个域名配置相应的虚拟主机,指定不同的目录

a.test.com -> /home/www/a

b.test.com -> /home/www/b

配置:

server { 
listen 80; 
server_name a.test.com; 
autoindex on;                         #开启网站目录文件列表功能,访问目录时列出其中的文件列表,默认不开启
index index.html; 
root /home/www/a/; 
}

server { 
listen 80; 
server_name b.test.com; 
index index.html; 
root /home/www/b/; 

location /(self)/ {                     #禁止对self目录的访问
deny all; 
} 
}

(2)对不同访问目录指定不同物理目录

server {
listen 80;
server_name ~^\d+\.\d+\.\d+\.\d+$;        #使用正则格式,这里表示接受任何ip
index index.html index.htm;
root /home/lg/www/;

location /share {
root /home/lg/Downloads;
}

location ^~ /Videos {
root /home/lg/;
autoindex on;
autoindex_exact_size on;
autoindex_localtime on;
allow all;
}

location ^~ /html5 {
root /home/lg/workspace/nodejs/;
index index.html index.htm;
}

location = /404.html {
root /usr/share/nginx/html;
}
}
Nginx默认是不允许列出整个目录的。如需此功能:

autoindex_exact_size
#默认为on,显示出文件的确切大小,单位是bytes
#改为off后,显示出文件的大概大小,单位是kB或者MB或者GB

autoindex_localtime
#默认为off,显示的文件时间为GMT时间。
#改为on后,显示的文件时间为文件的服务器时间

allow all;
#允许所以访问

如:
location /images {
                root   /var/www/nginx-default/ibugaocn;
                autoindex on;
        }

相关推荐