今天导师突然说我们的服务器又解析了一个域名,也就是一个服务器对应两个域名,希望能够建两个站。

一脸懵逼的我本来以为是通过重定位什么的解决。意料之外,在查资料过程中知道了虚拟主机

下面是虚拟主机知识普及,可以跳过。。。

1. WWW服务器虚拟主机原理

  WWW服务器虚拟主机是指使用一台物理机器,充当多个主机名的WWW服务器。比如由一台机器同时提供 http://www.company1.com 和 http://www.company2.com 等的WWW服务,而浏览这些WWW站点的用户感觉不到这种方式下跟由不同的机器提供不同的服务有什么差别。

  使用WWW虚拟主机的好处在于,一些小规模的网站,通过跟其他网站共享同一台物理机器,可以减少系统的运行成本,并且可以减少管理的难度。另外,对于个人用户,也可以使用这种虚拟主机方式来建立有自己独立域名的WWW服务器,目前国内有很多公司都提供这种免费的服务。

  WWW虚拟主机有两种工作方式:

  1.1 基于IP地址的虚拟主机方式

  这种方式下,不同的主机名解析到不同的IP地址,提供虚拟主机服务的机器上同时设置有这些IP地址。服务器根据用户请求的目的IP地址来判定用户请求的是哪个虚拟主机的服务,从而进一步的处理。

  缺点:基于IP地址的虚拟主机方式需要在提供虚拟主机服务的机器上设立多个IP地址,既浪费了IP地址,又限制了一台机器所能容纳的虚拟主机数目。因此这种方式越来越少使用。但是,这种方式是早期使用的HTTP 1.0协议唯一支持的虚拟主机方式。

  1.2 基于主机名的虚拟主机方式

  由于基于IP地址的虚拟主机方式有如上的缺点,HTTP 1.1协议中增加了对基于主机名的虚拟主机的支持。具体说,当客户程序向WWW服务器发出请求时,客户想要访问的主机名也通过请求头中的“Host:”语 句传递给WWW服务器。比如,www.company1.com 和 www.company2.com 都对应于同一个IP地址(即由同一台机器来给这两个虚拟域名提供服务),客户程序要存取 http://www.company1.com/index.html 时,发出的请求头中包含有如下的内容:

GET /index.html HTTP/1.1
Host: www.company1.com
……

  WWW服务器程序接收到这个请求后,可以通过检查“Host:”语句,来判定客户程序请求是哪个虚拟主机的服务,然后再进一步的处理。

  优点:提供虚拟主机服务的机器上只要设置一个IP地址,理论上就可以给无数多个虚拟域名提供服务,占用资源少,管理方便。目前基本上都是使用这种方式来提供虚拟主机服务。

  缺点:在早期的HTTP 1.0版本下不能使用。实际上现在使用的浏览器基本上都支持基于主机名的虚拟主机方式。
2. Apache服务器下的虚拟主机设置技术

  2.1 Apache WWW服务器简介

  Apache WWW服务器是目前Internet上使用最广的WWW服务器软件。通过灵活的配置,它可以完成几乎您想得到的功能。本文主要介绍在Apache 下设置各种虚拟主机的方法。

  2.2 Apache WWW服务器下基于IP地址的虚拟主机设置

  使用这种虚拟主机方式,首先要在服务器上为每个虚拟主机单独设置一个IP地址。这些IP地址可以通过增加多个网卡或者在一个网卡上设立多个IP地址来完成。有了多个IP地址后,可以采用以下两种方式之一来设置Apache:

  2.2.1 为每个虚拟主机运行一份Apache

  采用这种方式,每一份Apache程序可以以单独的用户运行,因此各个虚拟主机之间互不影响。设置这种虚拟主机时,只要为每一份Apache设 置一套配置文件就可以了,唯一需要注意的是:必须使用“Listen”语句,强制每一份Apache 仅仅在属于“自己”的IP地址上接收服务请求。

  优点:各个虚拟主机之间互不干扰,安全性高。

  缺点:占用系统资源较多。

  2.2.2多个虚拟主机共享同一份Apache

  采用这种方式,各个虚拟主机共享同一份Apache,因此各个虚拟主机之间有一定的影响,尤其是执行CGI程序时,可能会带来一些严重的安全问题。设置这种虚拟主机时,只要为每一个虚拟主机设置类似如下的信息即可

<VirtualHost www.company1.com>;
DocumentRoot /home/company1
……
</VirrualHost>;

  优点:占用系统资源比上一种方式少。

  缺点:安全性低,每个虚拟主机仍然需要占用一个IP地址。

  2.3 Apache WWW服务器下简单的基于名字的虚拟主机设置

  这种方式下,各个虚拟主机共享同一份Apache,因此有CGI程序运行时,安全性也不高。设置这种虚拟主机时,只要为每一个虚拟主机设置类似如下的信息即可

NameVirtualHost 111.222.33.44 ; 在这个IP地址接收虚拟主机的服务

<VirtualHost 111.222.33.44>;
ServerName www.company1.com
DocumentRoot /www/company1
</VirtualHost>;
<VirtualHost 111.222.33.44>;
ServerName www.company2.com
DocumentRoot /www/company2
</VirtualHost>;

  优点:只要一个IP地址就可以提供大量的虚拟主机服务。

  缺点:安全性差。维护这些虚拟主机时需要更改配置文件,并且需要重新启动Apache进程才能起作用。因此不适合进行大规模的虚拟主机服务。

  2.4 Apache WWW服务器下基于名字的大规模虚拟主机设置

  所谓大规模虚拟主机,是指能够提供非常多的虚拟主机服务,比如能提供超过数十万个域名的虚拟主机服务。如果使用以上讨论的方法,是很难完成的。实现这种服务的一种方式是利用Apache 功能强大的URL重写功能。下面以一个实例来说明这种方式。

  2.4.1 Apache中URL重写功能

  Apache 1.2及以后版本都有URL重写(Rewrite)功能。简单的说,URL重写功能就是在Apache接收到请求后,在处理的过程中能根据预先设定的规 则,对请求中的URL进行修改。这些规则主要由正规表达式组成。重写依赖于输入的URL、各种服务器端环境变量、HTTP请求头中的内容、时间,甚至可以 通过外部的程序来使用数据库中的信息来帮助重写。

  URL重写功能非常强大,通过URL重写,可以使Apache完成异常复杂的功能。当然,URL重写功能本身也比较复杂,关于URL重写功能的详细说明可以参看Apache 的随机文档。

  2.5 Apache WWW服务器下的重定向虚拟主机设置

  重定向虚拟主机是指仅仅提供重定向功能,而不实际存放用户主页数据的虚拟主机。比如,某站点有多个镜像服务器,假设为 www1.user.com、www2.user.com,…wwwn.user.com。这些服务器放在不同的网络上,分布于各地的客户访问这些服务器 的速度也互不相同。而站点www.home.com通过虚拟域名user.home.com为这些镜像的服务器提供虚拟主机服务。当客户访问 http://user.home.com时,www.home.com根据用户的IP地址、收集到的网络拓扑结构信息,把客户重定向到对该客户来说访问 速度最快的站点。

  重定向虚拟主机服务也可以通过使用URL重写功能来完成。这里仅给出简单的重写规则:

RewriteRule ^([a-z0-9]+)\.home\.com([\.]*)/(.*) /www/cgi-bin/nph-redirect.cgi/$1/$3 [T=application/x-httpd-cgi,L]

  其中,nph-redirect.cgi为一个CGI程序,为了实现自动重定向,它需要产生完整的HTTP 应答头信息。该程序通过环境变量PATH_INFO得到用户请求的URL,通过环境变量REMOTE_ADDR得到用户的IP地址,并根据网络拓扑情况生 成重定向信息,返回给客户。

(以上转载自ITPUB博客)

确定了基本方向后,开始查PHPNOW添加虚拟主机。

1. 在PHPNOW框架下找到一个叫PnCp.cms的东西,那是PHPNow控制面板,输入0,回车;

2. 新增主机名称(可以输入127.0.0.2到127.0.0.255, 也就是说可以一个服务器对应无数个域名),回车之后要求输入主机别名,直接填写新域名,之后要求输入网站目录,不写,直接回车。最后问你是否限制php的open_basedir,输入n,回车。然后会自动重启Apache;

3. 随后PHPNow这个目录下就多了一个vhosts文件夹,里面有个127.0.0.2文件夹,文件夹里有index.php;

此时这个127.0.0.2文件夹的文件夹内就可以放置新域名下的站点了。

以上。

PHPNOW添加虚拟主机(一个服务器多个域名)相关推荐

  1. phpnow添加虚拟主机

    搭建 PHP 其实不很难,只是有点繁琐.要是自己搭建一次 PHP + MySQL 环境很是费时.更糟的是,很多新手在配置 PHP 时常常出现这样那样的问题.诸如 mysql 扩展.zend 安装失败等 ...

  2. nginx部署两个php虚拟主机,nginx服务器,fastcgi模式,添加虚拟主机(多站点)配置...

    phpStudy套件是一个非常火的php环境包,是一个非常不错的本地调试环境,支持xp.win7.win10,甚至很多朋友直接用在个人服务器上,虽然本人不推荐......但是这样确实很省事. 所以在欢 ...

  3. php虚拟主机和服务器吗,php虚拟主机和服务器吗

    php虚拟主机和服务器吗 内容精选 换一换 本文主要从应用场景,迁移流程,业务连续性来对比主机迁移服务与IMS镜像服务的区别,以便在主机迁移过程中帮助您更好的选择迁移服务.IMS应用场景为线下服务器上 ...

  4. 虚拟主机服务器架设,云虚拟主机架设服务器

    云虚拟主机架设服务器 内容精选 换一换 当专属主机上的云服务器规格无法满足业务需要时,可参考本章节变更规格,升级云服务器的vCPU.内存.登录管理控制台.单击管理控制台左上角的,选择区域和项目.选择& ...

  5. 云服务器 虚拟主机 故障,云虚拟主机重启服务器

    云虚拟主机重启服务器 内容精选 换一换 弹性云服务器(Elastic Cloud Server,以下简称ECS)是由CPU.内存.镜像.云硬盘组成的一种可随时获取.弹性可扩展的计算服务器,同时它结合V ...

  6. 广东虚拟服务器,广东虚拟主机云服务器

    广东虚拟主机云服务器 内容精选 换一换 GaussDB(DWS) 提供的gsql命令行客户端,它的运行环境是Linux操作系统,在使用gsql客户端远程连接GaussDB(DWS) 集群之前,需要准备 ...

  7. 虚拟主机1服务器,虚拟主机1服务器

    虚拟主机1服务器 内容精选 换一换 鲲鹏BoostKit ARM原生使能套件(简称:鲲鹏BoostKit ARM原生)总体架构主要由:硬件平台.主机OS.虚拟化层.Guest OS层组成.鲲鹏Boos ...

  8. 虚拟的云服务器需要重启吗,虚拟主机重启服务器吗

    虚拟主机重启服务器吗 内容精选 换一换 弹性云服务器(Elastic Cloud Server,以下简称ECS)是由CPU.内存.镜像.云硬盘组成的一种可随时获取.弹性可扩展的计算服务器,同时它结合V ...

  9. 网站主机和服务器选哪个,虚拟主机和服务器 你的网站该选择哪一个?

    原标题:虚拟主机和服务器 你的网站该选择哪一个? 大家在平时使用虚拟主机的时候可能并不了解他的原理,更是分不清楚虚拟主机和服务器之间的区别,不知道自己的网站该如何选择. 虚拟主机是通过软件技术将一台服 ...

最新文章

  1. PHP之提取多维数组指定列的方法
  2. 云信私有化方案中如何搭建高可用的日志和监控平台?
  3. idea 提示 Cannot resolve symbol ‘log‘解决
  4. window safari 怎么进入响应式_响应式网站怎么做?模板教程来了
  5. django多条件筛选搜索(项目实例)
  6. idea如何一个项目如何运行多个实例
  7. imei模拟修改_教你如何修改任意安卓模拟器的机型IMEI手机号等信息 海马玩 Windroye等适用...
  8. 单代号网络图计算例题_一表多图(表格/横道图/网络图)让计划编制效率提高10倍...
  9. fw325r没有虚拟服务器,FAST FW325R的配置方法教程
  10. java服务器接收coap协议数据_CoAP协议-以Java为例的Californium初步实现
  11. C语言struct 函数,C语言结构体史上最详细的讲解
  12. 圆形区域的半透明填充
  13. 如何阅读一本书——阅读笔记+个人体会【建议写书评或文献综述前读读这本书】
  14. python识别图片中的人_Python实现识别图片中的所有人脸并显示出来
  15. Java 同步监视器中的 wait() 和 notify() 方法的具体实现
  16. Masking Adversarial Damage: Finding Adversarial Saliency for Robust and Sparse Network
  17. MPU6050加速度传感器学习笔记之实验《获取原始数据》
  18. Java程序员的4大就业方向
  19. 统计学中的白噪声理解
  20. orcle 删除表报正在使用_oracle删除正在连接的用户,解除锁定的表

热门文章

  1. Retrieval Augmented Visual Question Answering with Outside Knowledge
  2. mysql 去重查询
  3. Python:文件处理,数据库操作
  4. 林平之家里有内功心法
  5. 使用谷歌浏览器Chrome://inspect调试 cordova 项目
  6. 【和UI斗智斗勇的日子】Android实现一个只有四个圆角有边框的边框
  7. 第154章 SQL函数 UNIX_TIMESTAMP
  8. 故障:启动修复无法修复你的电脑
  9. 解决Ubuntu 16.04下搜狗输入法显示白框的问题
  10. 分享一个windows应用鼠标手势工具