nginx配置虚拟主机(三)

背景

         今天这篇文章还是nginx系列,前面咱们简单介绍了nginx如何安装以及对一些基础的配置参数进行了说明。今天咱们接上章内容,浅谈一下nginx如何配置虚拟主机吧。

         虚拟主机就是将一台实际的物理服务器分成多台虚拟的服务器,每台虚拟服务器都可以通过nginx配置不同的web服务。利用虚拟主机,不用为每个要运行的网站提供一台单独的Nginx服务器或单独运行一组Nginx进程。虚拟主机提供了在同一台服务器、同一组Nginx进程上运行多个网站的功能。

        配置虚拟主机,总共有三种方式,1)基于多IP;2)基于多端口;3)基于多域名。其中基于多域名是企业中最常用的一种方式,基于多端口的方式,主要用于本机配置项目。

配置虚拟主机

1.  基于ip

         基于ip的虚拟主机,顾名思义就是服务器配置多个ip,外部通过不同的ip访问不同的web网站。配置如下:

server {
      listen  80;
      server_name  192.168.65.129;
      location / {
              root    /nginx/129;
              index index.html;
      }
    }
server {
      listen  80;
      server_name  192.168.65.130;
      location / {
              root    /nginx/130;
              index index.html;
      }
    }

        通过192.168.65.129去访问web服务器,默认访问的是/nginx/129/index.html文件;

          通过192.168.65.129去访问web服务器,默认访问的是/nginx/130/index.html文件

2.   基于端口 

server {
        listen  8081;
        server_name     xhz.com;
        location / {
           root    /nginx/xhz;
           index index.html;
        }
    }
server {
        listen  8082;
        server_name     flf.com;
        location / {
           root    /nginx/flf;
           index index.html;
        }
    }

        通过xhz.com:8081访问web服务器,默认访问的是/nginx/xhz/index.html文件

3.  基于域名

server {
    listen 80;
    server_name flf.com;
    autoindex on;

    location / {
        root /nginx/flf;
        index index.html;

    }

}

         通过flf.com访问web服务器,默认访问的是/nginx/flf/index.html文件

为什么通过flf.com访问的是/nginx/flf/index.html文件?

        1.  在访问一个网站的时候,我们一般都是通过域名,但是在网站栏看到的url地址会是http://flf.com/

        2.  url地址的组成:http(https,ftp)访问协议;// 分隔符 ;flf.com  域名;/  根

 

        3.   在定义虚拟主机的的配置文件中,root   /nginx/flf   ==> /    /nginx/flf,因此在访问http://flf.com/的时候实际上访问的是http://xhz.com/nginx/flf

        4.  index index.html  则表示默认访问index.html文件。

 虚拟主机常用模块

1.    ngx_http_autoindex_module模块

        官网连接:Module ngx_http_autoindex_module
 在访问web服务器的时候,默认回去访问根下面的index.html文件,假如当根下的index.html的文件不存在时,会包403的错误。开启autoindex on后,当找不到index.html的文件时,会将请求传递给 ngx_http_autoindex_module 模块,从而页面是以目录结构进行展示。

 1.1  语法

##  开启没有index.html文件时,页面是以目录结构进行展示
Syntax:	autoindex on | off;
Default:	autoindex off;

##  作用域,可以卸载http层,server层,location层
Context:	http, server, location



##  显示目录结构中各个文件的大小
Syntax:	autoindex_exact_size on | off;
Default:	
autoindex_exact_size on;
Context:	http, server, location

##  开启显示本地时间
Syntax:	autoindex_localtime on | off;
Default:	
autoindex_localtime off;
Context:	http, server, location

1.2  示例 

server {
    listen 80;
    server_name autoindex.com;

    location / {
        root /nginx/auto_index;
        index index.html;
        autoindex on;
        #  开启显示文件大小
        autoindex_exact_size on;
        # 开启显示本地时间
        autoindex_localtime on;
    }
}

 2.  ngx_http_auth_basic_module模块

         ngx_http_auth_basic_module 模块允许通过使用“HTTP 基本身份验证”协议验证用户名和密码来限制对资源的访问。访问也可以通过地址、子请求的结果或 JWT 来限制。 通过地址和密码同时限制访问由满足指令控制。

2.1     语法

location / {
    auth_basic           "closed site";
    auth_basic_user_file conf/htpasswd;
}


##  描述信息
Syntax:	auth_basic string | off;
Default:	
auth_basic off;
Context:	http, server, location, limit_except

##  指导密码认证的账号密码的保存文件
Syntax:	auth_basic_user_file file;
Default:	—
Context:	http, server, location, limit_except

 2.2    示例

 设置账号密码

root@xhz-uos:/etc/nginx/conf.d# htpasswd -c -b /nginx/pass/htpasswd xhz qwer123
Adding password for user xhz
root@xhz-uos:/etc/nginx/conf.d# 
server {
    listen 80 default_server;
    server_name autoindex.com;
    root /nginx/auto_index;

    location / {
        index index.html;
        autoindex on;
        #  开启显示文件大小
        autoindex_exact_size on;
        # 开启显示本地时间
        autoindex_localtime on;
    }
    location /apt {
        auth_basic           "closed site";

        ##  指定账号密码保存的路径
        auth_basic_user_file /nginx/pass/htpasswd;
    }

}

 nginx的模块太过丰富,像nginx的主要功能负载均衡就是通过模块来实现的,随着后续一步步的深入,在慢慢的介绍更多的模块吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小肖同学..

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值