• 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;
            }
    
  • 相关阅读:
    java远程连接linux,执行脚本启动Tomcat
    IDEA启动项目时报错:Error running 'Application': Command line is too long. Shorten command line for Application or also for Spring Boot default configuration.
    解决Error: Cannot find module 'node-sass'问题
    微信小程序 errMsg: "request:fail -102:net::ERR_CONNECTION_REFUSED"
    微信小程序自定义swiper轮播图面板指示点的位置
    微信小程序swiper不能显示的问题
    微信小程序border-bottom 的长度解决方法
    Unexpected end of JSON input while parsing near
    使用AOP统一处理Web请求日志
    Hadoop 2:Mapper和Reduce
  • 原文地址:https://www.cnblogs.com/xuyuQAQ/p/8728695.html
Copyright © 2020-2023  润新知