nginx系列-03-虚拟主机的配置

[TOC]

** 以下所有的测试都是在CentOS6系统上进行的 **

** 另外,本篇文章只配置最基本的配置项。其他配置可参考本人该系列的其他文章 **

1 什么是虚拟主机?都有哪些类型的虚拟主机?

虚拟主机当然是虚拟的主机而非真正意义上的物理主机。
他是利用软硬件技术,将一台真正的物理主机分成一台台虚拟主机。
在"浏览器"看来,每台虚拟主机和真正的物理主机没什么区别。这里所说的"浏览器"指的是广义上的一切访问者。

虚拟主机从实现的技术不同可以分为以下三类:

  • 基于IP的虚拟主机
  • 基于域名的虚拟主机
  • 基于端口的虚拟主机

2 基于IP的虚拟主机

基于Unix发展而来的系统,一般都支持在一块网卡上绑定多个IP地址。也就是所谓的IP别名了。

2.1 绑定多个IP地址

此处本人给该主机添加两个额外的IP地址

ifconfig eth0:1 192.168.161.127 broadcast 192.168.161.255 netmask 255.255.255.0 up
route add -host 192.168.161.127 dev eth0:1
ifconfig eth0:2 192.168.161.126 broadcast 192.168.161.255 netmask 255.255.255.0 up
route add -host 192.168.161.126 dev eth0:2

此时的IP信息如下

[root@h1 nginx]# ifconfig 
# 原来就有的IP
eth0      Link encap:Ethernet  HWaddr 00:0C:29:D5:A3:78  
          inet addr:192.168.161.128  Bcast:192.168.161.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fed5:a378/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1740 errors:0 dropped:0 overruns:0 frame:0
          TX packets:857 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:143515 (140.1 KiB)  TX bytes:122079 (119.2 KiB)

# 新添加的
eth0:1    Link encap:Ethernet  HWaddr 00:0C:29:D5:A3:78  
          inet addr:192.168.161.127  Bcast:192.168.161.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

# 新添加的
eth0:2    Link encap:Ethernet  HWaddr 00:0C:29:D5:A3:78  
          inet addr:192.168.161.126  Bcast:192.168.161.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

# 本地回环地址
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

2.2 配置基于IP的虚拟主机

编辑配置文件/etc/nginx/nginx.conf

server {
    listen      192.168.161.126:80;
    server_name 192.168.161.126;
    access_log  /logs/ip-server1.access.log combined;
    location / {
        index index.html;
        root /web/html/1;
    } 
}


server {
        listen          192.168.161.127:80;
        server_name     192.168.161.127;
        access_log      /logs/ip-server2.access.log combined;
        location / {
                index index.html;
                root /web/html/2;
        } 
}


server {
        listen          192.168.161.128:80;
        server_name     192.168.161.128;
        access_log      /logs/ip-server3.access.log combined;
        location / {
                index index.html;
                root /web/html/3;
        } 
}

建立目录结构

[root@h1 /]# tree web -L 3
web
└── html
    ├── 1
    │   └── index.html
    ├── 2
    │   └── index.html
    └── 3
        └── index.html

测试

分别用浏览器访问:
http://192.168.161.126
http://192.168.161.127
http://192.168.161.128

2.3 总结

此处的一个 server{...} 段就代表一个虚拟主机。这里只是做了简单的配置。
其他配置选项可以参考本人该系列的其他文章。

另外,众所周知,IPV4地址总共就40多亿个。
这种基于IP的虚拟主机,如果在内网使用,倒是还蛮不错的。
如果一旦放到公网,这IP地址就……

3 基于域名的虚拟主机

3.1 域名处理

此处由于本人没有公网主机IP,即使是有个域名也是白搭。
所有此处就暂时修改hosts文件来弄个虚假的域名试试了。

在hosts文件加入如下内容

192.168.161.128     www.hylexus.com hylexus.com aaa.hylexus.com bbb.hylexus.com

3.2 配置基于域名的虚拟主机

# 处理二级域名aaa.hylexus.com的请求
server{
    listen  80;
    server_name aaa.hylexus.com;
    access_log  /logs/aaa.access.log;
    location /{
        index index.html;
        root /web/html/aaa.hylexus.com;
    }
}

# 处理二级域名bbb.hylexus.com的请求
server{
    listen  80;
    server_name bbb.hylexus.com;
    access_log  /logs/bbb.access.log;
    location /{
        index index.html;
        root /web/html/bbb.hylexus.com;
    }
}

# 处理域名www.hylexus.com,hylexus.com,和除了{aaa,bbb}/hylexus.com的请求
server{
    listen  80;
    server_name www.hylexus.com hylexus.com *.hylexus.com;
    access_log  /logs/bbb.access.log;
    location /{
        index index.html;
        root /web/html/www.hylexus.com;
    }
}

3.3 总结

域名也不是很贵,看你要什么样的了。有一年两块钱的也有上万的。
只要有个域名和公网主机IP就好办了。一个IP就可以为多个域名服务了。
买个域名一般要比搞个公网IP划算多了啊。

这种基于域名的虚拟主机也是最常见的。

比如:

http://www.apache.org/
http://apache.org/
http://tomcat.apache.org/
http://spark.apache.org/
http://hadoop.apache.org/

4 基于端口的虚拟主机

4.1 基于端口的虚拟主机配置

server{
    listen  80;
    server_name 192.168.161.128;
    access_log  /logs/aaa.access.log;
    location /{
        index index.html;
        root /web/html/aaa.hylexus.com;
    }
}

server{
    listen  8080;
    server_name 192.168.161.128;
    access_log  /logs/bbb.access.log;
    location /{
        index index.html;
        root /web/html/bbb.hylexus.com;
    }
}

server{
    listen  8090;
    server_name 192.168.161.128;
    access_log  /logs/bbb.access.log;
    location /{
        index index.html;
        root /web/html/www.hylexus.com;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,670评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,928评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,926评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,238评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,112评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,138评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,545评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,232评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,496评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,596评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,369评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,226评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,600评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,906评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,185评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,516评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,721评论 2 335

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,497评论 18 139
  • 背景介绍 2015年12月,InfoQ的编辑魏星邀请作者撰写一篇关于中国公有云服务发展状况的文章。因为作者个人对公...
    蝎子看互联网阅读 1,353评论 0 50
  • 名词延伸 通俗的说,域名就相当于一个家庭的门牌号码,别人通过这个号码可以很容易的找到你。如果把IP地址比作一间房子...
    杨大虾阅读 20,569评论 2 57
  • 中国自古以来一直在做两件事,破局和设局。 那什么是局呢?局就是你身边各种资源之间相互关联和相互作用的状态与关系。 ...
    idyllis阅读 585评论 0 0
  • 原文:http://www.cocoachina.com/bbs/read.php?tid-193398-keyw...
    无wu阅读 250评论 0 0