zoukankan      html  css  js  c++  java
  • 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 ~^wwwd+.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;
            }
    
  • 相关阅读:
    团队作业——系统设计
    团队作业—预则立&&他山之石
    Alpha 冲刺报告2
    Android:Date、String、Long三种日期类型之间的相互转换
    冲刺阶段第一天
    需求分析答辩总结
    用ExifInterface读取经纬度的时候遇到的一个问题
    项目uml设计
    项目选题报告答辩总结
    深夜睡不着,去某乎爬点照片
  • 原文地址:https://www.cnblogs.com/xuyuQAQ/p/8728695.html
Copyright © 2011-2022 走看看