使用nginx配置虚拟主机

 

什么是虚拟主机

         虚拟主机是一种特殊的软硬件技术,它可以将网络上的每一台计算机分成多个虚拟主机,每个虚拟主机可以独立对外提供www服务,这样就可以实现一台主机对外提供多个web服务,每个虚拟主机之间是独立的,互不影响的。

 

 

通过nginx可以实现虚拟主机的配置,nginx支持三种类型的虚拟主机配置,

1、基于ip的虚拟主机, 

2、基于域名的虚拟主机 

3、基于端口的虚拟主机

 

 

nginx配置文件的结构

从第一个虚拟主机的例子可以看出nginx的配置文件结构如下:

 

......

events {

    .......

}

http{

  .......

  server{

         .......

         }

  server{

         .......

         }

 

}

每个server就是一个虚拟主机。

 

基于域名的虚拟主机配置

端口相同域名不同

1  需求

两个域名指向同一台nginx服务器,用户访问不同的域名显示不同的网页内容。

两个域名是aaa.test.com和bbb.test.com

nginx服务器使用虚拟机192.168.101.3

 

2  准备环境

创建192.168.101.3虚拟机,保证本地电脑和虚拟网络通畅。

在192.168.101.3上安装nginx。

 

通过host文件指定aaa.test.com和bbb.test.com对应192.168.101.3虚拟机:

修改window的hosts文件:(C:\Windows\System32\drivers\etc)

 

 t1t1

3  html目录创建

 

在192.168.101.3上创建/usr/local/aaa_html,此目录为aaa.test.com域名访问的目录

在192.168.101.3上创建/usr/local/bbb_html,此目录为bbb.test.com域名访问的目录

 

目录中的内容使用nginx自带的html文件,将/usr/local/nginx/html中的内容拷贝分别拷贝到上边两个目录中,并且将aaa_html目录中的index.html内容改为:“Welcome to aaa nginx!”

将bbb_html目录中的index.html内容改为“Welcome to bb bnginx!”

 

 

4  配置虚拟主机

修改/usr/local/nginx/conf/nginx.conf文件,添加两个虚拟主机,如下:

 

配置虚拟主机aaa.test.com

 

server {
                   #监听的ip和端口,配置本机ip和端口
       listen 192.168.101.3:80;         
                   #虚拟主机名称是aaa.test.com,请求域名aaa.test.com的url将由此server配置解析
       server_name aaa.test.com
                   #所有的请求都以/开始,所有的请求都可以匹配此location
       location / {
                   #使用root指令指定虚拟主机目录即网页存放目录
                   #比如访问http://ip/test.html将找到/usr/local/aaa_html/test.html
                   #比如访问http://ip/item/test.html将找到/usr/local/aaa_html/item/test.html
                root /usr/local/aaa_html;       
                                #指定欢迎页面,按从左到右顺序查找
                index index.html index.htm;   
       }
 }
 
#配置虚拟主机bbb.test.com
server {
       listen 192.168.101.3:80;
       server_name bbb.test.com;
       location / {
                root /usr/local/bbb_html;
                index index.html index.htm;
       }
}

 

 

 

5  测试

访问aaa.test.com、bbb.test.com

 

 

基于端口的虚拟主机

域名相同端口不同

1  需求

nginx对外提供80和8080两个端口监听服务。

请求80端口则请求html80目录下的html

请求8080端口则请求html8080目录下的html

 

2  准备环境

创建192.168.101.3虚拟机,保证本地电脑和虚拟网络通畅。

在192.168.101.3上安装nginx。

 

3  html目录创建

将原来nginx的html目录拷贝两个目录 “html80”和“html8080”,为了方便测试需要修改每个目录下的index.html内容使之个性化。

参考基于ip或域名的虚拟主机章节。

 

4  配置虚拟主机

修改/usr/local/nginx/conf/nginx.conf文件,添加两个虚拟主机,如下:

 

 

#user  nobody;
worker_processes  1;
 
events {
    worker_connections  1024;
}
 
http {
    include       mime.types;
    default_type  application/octet-stream;
 
    sendfile        on;
   
    keepalive_timeout  65;
    #配置虚拟主机
    server {
         #监听的ip和端口,配置80
        listen       80;
         #虚拟主机名称这里配置ip地址
       server_name  192.168.101.3;
         #所有的请求都以/开始,所有的请求都可以匹配此location
        location / {
            #使用root指令指定虚拟主机目录即网页存放目录
            #比如访问http://ip/test.html将找到/usr/local/html3/test.html
            #比如访问http://ip/item/test.html将找到/usr/local/html3/item/test.html
 
            root   /usr/local/nginx/html80;
            #指定欢迎页面,按从左到右顺序查找
            index  index.html index.htm;
        }
 
    }
    #配置虚拟主机
    server {
        listen       8080;
       server_name  192.168.101.3;
 
        location / {
            root   /usr/local/nginx/html8080;
            index  index.html index.htm;
        }
 
    }
 
}

 

 

 

 

5  测试

启动 nginx,查看端口监听状态:

 

t2

访问http://192.168.101.3

 

 t3t3

访问http://192.168.101.3:8080

t4

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

刘彦青-Yannis

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

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

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

打赏作者

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

抵扣说明:

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

余额充值