当前位置: 首页 > news >正文

虚拟主机 (Virtual Host)

虚拟主机 (Virtual Host) 是在同一台机器搭建属于不同域名或者基于不同 IP 的多个网站服务的技术. 可以为运行在同一物理机器上的各个网站指配不同的 IP 和端口, 也可让多个网站拥有不同的域名.

Apache 是世界上使用最广的 Web 服务器, 从 1.1 版开始支持虚拟主机. 本文将讲解在不同服务器 (Redhat Enterprise Linux, Ubuntu Linux, Windows) 上使用 Apache 搭建虚拟主机来搭建多个网站.

Apache 虚拟主机 VirtualHost 配置

主旨

本文旨在让读者知道如何在同一台机器上搭建多个网站, 并附带一些使用技巧. 以操作为主, 不会过多谈及原理.

目标

本文是写给拥有一定的服务器配置和管理技能, 工作中需要同时维护多个网站的网站主, 网站开发者和网络管理员. 如果你是互联网公司的配管工程师, 对计算机服务器原理和操作十分熟悉, 请忽视本文, 你不会在上面找到太多有价值的东西.

以下是各操作系统的配置方法.

  • Redhat Enterprise Linux
  • Ubuntu Linux
  • Windows
  • Mac OS

Redhat Enterprise Linux

Redhat Enterprise Linux (包括 CentOS Linux), 是使用最广的 Linux 服务器, 大量的网站应用都部署在其上.

1. 打开文件 /etc/httpd/conf/httpd.conf, 搜索 VirtualHost example, 找到代码如下:

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
#<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host.example.com
#    DocumentRoot /www/docs/dummy-host.example.com
#    ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>

2. 仿照例子, 添加一段代码来指定某一域名的网站.

#
# DocumentRoot 是网站文件存放的根目录
# ServerName 是网站域名, 需要跟 DNS 指向的域名一致
#
<VirtualHost *:80>ServerAdmin webmaster@dummy-host.example.comDocumentRoot /var/www/httpdocs/demo_neoease_comServerName demo.neoease.comErrorLog logs/demo.neoease.com-error.logCustomLog logs/demo.neoease.com-access.log common
</VirtualHost>

3. 重启 httpd 服务, 执行以下语句.

service httpd restart

Ubuntu Linux

Ubuntu 在 Linux 各发行版中, 个人用户数量最多的. 很多人在本机和虚拟机中使用. 但 Ubuntu 和 Redhat 的 VirtualHost 设置方法不相同.

1. 打开目录 /etc/apache2/sites-available/, 发现 default 和 default-ssl 两个文件, 其中 default 是 http 虚拟主机服务的配置文件, default-ssl 是配置 https 服务使用的. 可以复制一份 default 文件. 并修改配置文件名, 文件名必须与域名一致 (如: demo.neoease.com)

2. 打开新建的配置文件, 修改 DocumentRoot, ServerName 和对应的配置目录. 例子如下:

#
# DocumentRoot 是网站文件存放的根目录
# ServerName 是网站域名, 需要跟 DNS 指向的域名一致
#
<VirtualHost *:80>ServerAdmin webmaster@dummy-host.example.comDocumentRoot /var/www/httpdocs/demo_neoease_comServerName demo.neoease.comErrorLog ${APACHE_LOG_DIR}/demo.neoease.com-error.logCustomLog ${APACHE_LOG_DIR}/demo.neoease.com-access.log combined
</VirtualHost>

3. 通过 a2ensite 激活虚拟主机配置

sudo a2ensite demo.neoease.com

4. 打开目录 /etc/apache2/sites-enabled/, 你会发现所有激活的虚拟主机, 可以通过 a2dissite 进行注销

sudo a2dissite demo.neoease.com

5. 重启 Apache 服务, 激活虚拟主机

sudo /etc/init.d/apache2 restart

Windows

Windows 是市场占有率最高的 PC 操作系统, 也是很多人的开发环境. 其 VirtualHost 配置方法与 Linux 上有些差异, 以下方式适合原生 Apache, XAMPP 和 WAMP 套件.

1. 打开目录 {Apache2 安装目录}\conf\extra\, 找到 httpd-vhosts.conf 文件.

2. 仿照例子, 添加一段代码来指定某一域名的网站.

#
# DocumentRoot 是网站文件存放的根目录
# ServerName 是网站域名, 需要跟 DNS 指向的域名一致
#
<VirtualHost *:80>ServerAdmin webmaster@dummy-host.example.comDocumentRoot "D:/workspace/php/demo_neoease_com"ServerName demo.neoease.comErrorLog "logs/demo.neoease.com-error.log"CustomLog "logs/demo.neoease.com-access.log" common
</VirtualHost>

3. 打开 httpd.conf 文件, 添加如下语句.

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

4. 重启 Apache 服务.

Mac OS

近年苹果的雄起, 让 Mac 日催普及, 也成为很多开发人员的选择. 因为与 Linux 同源, 配置方法也相似.

1. 打开文件 /private/etc/apache2/extra/httpd-vhosts.conf.

2. 仿照例子, 添加一段代码来指定某一域名的网站.

#
# DocumentRoot 是网站文件存放的根目录
# ServerName 是网站域名, 需要跟 DNS 指向的域名一致
#
<VirtualHost *:80>ServerAdmin webmaster@dummy-host.example.comDocumentRoot "/usr/docs/httpdocs/demo_neoease_com"ServerName demo.neoease.comErrorLog "/private/var/log/apache2/demo.neoease.com-error_log"CustomLog "/private/var/log/apache2/demo.neoease.com-access_log" common
</VirtualHost>

3. 打开文件 /private/etc/apache2/httpd.conf, 搜索 Virtual hosts, 找到代码如下:

# Virtual hosts
#Include /private/etc/apache2/extra/httpd-vhosts.conf

去掉前面的注释符号 #, 保存文件.

4. 重启 apache 服务, 执行以下语句.

sudo apachectl restart

http://www.xdnf.cn/news/803791.html

相关文章:

  • 用DW制作简单的浮动广告
  • Redhat 安装Informix 12.10
  • 动态代理
  • 解决msn登陆不了的方法
  • Oracle之minus求差集(与该功能相同的有not in、not exists)
  • Matlab R 2008a版安装教程
  • Linux Red Hat 9.0配置国内镜像源和本地镜像源
  • 传奇BlueM2/Legend引擎登陆配置详细图文教程
  • 数据库原理—数据库基础(二,前端阿里等大厂面试题汇总
  • 3.ARM基本概念
  • 分享35个非常漂亮的单页网站设计案例
  • iframe透明属性使用
  • 盗版windows系统避黑攻略
  • 端口知识---从基础到进阶!(常用端口功能+攻防)
  • 常用上网网址
  • 博客搬家攻略
  • php京东接口开发,技术文档
  • 设计mysql表实现 好友列表、昵称设置、好友分组
  • 最受欢迎的 20 款黑客工具(建议收藏)
  • SD卡速率测试
  • 浅谈显 ipqq 发展历程 【附显 ipqq原理】
  • HTC Desire|G7 怎么在HBOOT下面卡刷官方ROM
  • 股票交易系统实践指南
  • おとまりせっくす中文在线
  • python之路_day6
  • [原创] 我在全球最大的同性社交平台那点事
  • 双色球概率分析
  • WWDC 2013大会内容
  • 防火墙是什么?防火墙的五个主要功能
  • 年薪过百万?网络信息安全工程师,到底是做什么的?