Apache 虚拟主机 VirtualHost 配置
来源:互联网 发布:手机淘宝怎么售后 编辑:程序博客网 时间:2024/04/29 19:33
虚拟主机 (Virtual Host) 是在同一台机器搭建属于不同域名或者基于不同 IP 的多个网站服务的技术. 可以为运行在同一物理机器上的各个网站指配不同的 IP 和端口, 也可让多个网站拥有不同的域名.
Apache 是世界上使用最广的 Web 服务器, 从 1.1 版开始支持虚拟主机. 本文将讲解在不同服务器 (Redhat Enterprise Linux, Ubuntu Linux, Windows) 上使用 Apache 搭建虚拟主机来搭建多个网站.
主旨
本文旨在让读者知道如何在同一台机器上搭建多个网站, 并附带一些使用技巧. 以操作为主, 不会过多谈及原理.
目标
本文是写给拥有一定的服务器配置和管理技能, 工作中需要同时维护多个网站的网站主, 网站开发者和网络管理员. 如果你是互联网公司的配管工程师, 对计算机服务器原理和操作十分熟悉, 请忽视本文, 你不会在上面找到太多有价值的东西.
以下是各操作系统的配置方法.
- 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.com DocumentRoot /var/www/httpdocs/demo_neoease_com ServerName demo.neoease.com ErrorLog logs/demo.neoease.com-error.log CustomLog logs/demo.neoease.com-access.log common</VirtualHost>
3. 重启 httpd 服务, 执行以下语句.
service httpd restart
我的配置:
1.NameVirtualHost *:80 NameVirtualHost *:80意思是所有的虚拟主机配置的所有域名开启监听80端口
2.
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /var/www/html/Virtual1
ServerName hlw.com
ErrorLog logs/hlw.com-error.log
CustomLog logs/hlw.com-access.log common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@website3.com
DocumentRoot /var/www/html/Virtual2
ServerName qzx.com
ErrorLog logs/qzx.com-error.log
CustomLog logs/qzx.com-access.log common
</VirtualHost>
3.cd /var/www/html/
mkdir Virtual1
mkdir Virtual2
vim Virtual1/test1.php
vim Virtual2/test2.html
4.vim /etc/hosts
127.0.0.1 hlw.com
127.0.0.1 qzx.com
5.service httpd restart
6.浏览器输入:
hlw.com/test1.php
qzx.com/test2.html
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.com DocumentRoot /var/www/httpdocs/demo_neoease_com ServerName demo.neoease.com ErrorLog ${APACHE_LOG_DIR}/demo.neoease.com-error.log CustomLog ${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.com DocumentRoot "D:/workspace/php/demo_neoease_com" ServerName demo.neoease.com ErrorLog "logs/demo.neoease.com-error.log" CustomLog "logs/demo.neoease.com-access.log" common</VirtualHost>
3. 打开 httpd.conf 文件, 添加如下语句.
# Virtual hostsInclude 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.com DocumentRoot "/usr/docs/httpdocs/demo_neoease_com" ServerName demo.neoease.com ErrorLog "/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
总结
最近我在不同的几台服务器上搭建了一些网站服务, 这篇文章也算是我的个人笔记, 望日后可自用, 也希望对读者有用. 文中介绍了几个主流开发和部署环境上配置虚拟主机的方法, 其他 OS 大同小异.
因为还有些朋友留言希望知道 Nginx 的配置方法, 作为补充内容, 我又写了《Nginx 虚拟主机 VirtualHost 配置》
Apache虚拟目录、虚拟主机配置
1.安装apache(这里不介绍如何安装,此次安装是用的rpm包安装)
2.
3.配置apache虚拟主机的多域名配置
apache 基本vhost配置
- Apache 虚拟主机 VirtualHost 配置
- Apache 虚拟主机 VirtualHost 配置
- Apache 虚拟主机 VirtualHost 配置
- Apache 虚拟主机 VirtualHost 配置
- Apache 虚拟主机 VirtualHost 配置
- Apache 虚拟主机 VirtualHost 配置
- Apache 虚拟主机 VirtualHost 配置
- Apache 虚拟主机 VirtualHost 配置
- Apache 虚拟主机 VirtualHost 配置
- Apache 虚拟主机 VirtualHost 配置
- Apache 虚拟主机 VirtualHost 配置
- Apache 虚拟主机 VirtualHost 配置
- Apache 虚拟主机 VirtualHost 配置
- ZZ: Apache 虚拟主机 VirtualHost 配置
- Linux配置Apache虚拟主机VirtualHost
- Apache VirtualHost配置成功/Wamp虚拟主机配置
- Windows下配置Apache虚拟主机(VirtualHost)
- apache 中多虚拟主机VirtualHost的配置
- MC9S12G128 内部flash与eeprom的读写配置
- casperjs在windows下抓取元素乱码
- unity 初次制作
- jenkins报错总结
- BZOJ_P3517 翻硬币(博弈+数学)
- Apache 虚拟主机 VirtualHost 配置
- 安卓的增量更新
- CSRF verification failed. Request aborted.
- 五步搞定Android开发环境部署——非常详细的Android开发环境搭建教程
- CSDN博客测试
- TCP快速重传与快速恢复机制
- 隐性改变display类型
- GC是什么? 为什么要有GC?
- Android开发中网络编程与常见功能优化总结