http://tonybai.com/2011/06/27/configure-multiple-websites-with-apache2/
要求:在一个已经部署了一套应用的Apache2上再部署另外一套应用。这也让我不得不深入了解一下Apache的配置。不过还好,过程还是顺利的,这里记下此文意在备忘,如果同时也能给大家带来一些有价值的参考那就再好不过了。
Ubuntu下安装好Apache2后(sudo apt-get install apache),在任何配置都未做修改的初始情况下,我们看到的与虚拟站点有关的Apache2的初始配置如下:
Apache2主配置文件: /etc/apache2/apache2.conf。其最后两行为:
# Include the virtual host configurations:
Include /etc/apache2/sites-enabled/
显然/etc/apache2/sites-enabled下存放着有关虚拟站点(VirtualHost)的配置。经查看,初始情况下,该目录下包含一个符号连接:000-default -> ../sites-available/default
这里又引出另外一个配置目录:/etcc/apache2/sites-available。这个目录下放置了所有可用站点的真正配置文件,对于Enabled的站点,Apache2在sites-enabled目录建立一个到sites-available目录下文件的符号链接。
/etc/apache2/sites-available下有两个文件:default和default-ssl。000-default链接的文件为default,我们就以default为例,看看一个VirtualHost的配置是啥样的:
ServerAdmin webmaster@localhost
DocumentRoot /var/www
Options FollowSymLinks
AllowOverride None
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
… …
DocumentRoot是这个站点的根目录,这样Apache2启动时会扫描/etc/apache2/sites-enabled中可用的website配置并加载。当用户访问localhost:80时,Apache2就将default站点根目录/var/www下的index.html作为请求的回应返回给浏览器,你就会欣赏到的就是/var/www/index.html这个文件中的内容了。
Apache2的默认站点我们不要去动它。我们新增站点配置来满足我们的要求。到这里我猜测一下你可能有两类需求:
一是如何配置根据访问的域名区分配置不通的站点?
二是在相同域名地址的情况下,如何通过访问不同的端口获得不同的站点?
我们先来看看第一种需求。第一种需求讲的是我要在一个Apache2服务器上配置两个站点:site1.com和site2.com。好,我们可以按照下面步骤来做:
* 建立配置文件
在sites-available中建立两个站点的配置文件site1_com和site2_com:
sudo cp default site1_com
sudo cp default site2_com
编辑这两个配置文件,以site1_com为例:
ServerAdmin webmaster@localhost
ServerName site1.com
DocumentRoot /var/www/site1_com
Options FollowSymLinks
AllowOverride None
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
… …
注意上面配置中:ServerName、DocumentRoot和Directory是我们重点关注的配置点。site1的ServerName为site1.com,根目录为/var/www/site1_com,Directory同DocumentRoot。site2_com也做同样的改动。
* 在sites-enabled目录下建立符号链接:
sudo ln -s /etc/apache2/sites-available/site1_com /etc/apache2/sites-enabled/site1_com
sudo ln -s /etc/apache2/sites-available/site2_com /etc/apache2/sites-enabled/site2_com
* 在/var/www下建立site1_com和site2_com两个目录,然后修改目录所有者:
sudo chown -R www-data site1_com site2_com/
* 在site1_com和site2_com中各自创建一个index.html文件,用于测试使用。
以site1_com下index.html为例,其内容为:Welcome To Site1。
* 重启Apache2(sudo /init.d/apache2 restart)使配置生效。
* 修改/etc/hosts文件,便于测试。
添加如下两行:
127.0.0.1 site1.com
127.0.0.1 site2.com
* 打开浏览器,输入http://site1.com,之后不出意外你就会看到”Welcome to Site1“字样。
第二类需求是希望通过端口号来区分虚拟站点。这个也不难,一些配置方法与上面内容雷同,这里就不详说了。
比如以site2为例:我通过80端口访问site2,可看到"Welcome to Site2”,从8080端口访问site2,则会看到"Welcome to Site2 through 8080"。我们如何配置呢?
* 首先我们得让apache2监听端口8080
修改/etc/apache2/ports.conf,增加两行:
NameVirtualHost *:8080
Listen 8080
* 在/etc/apache2/sites-available/下增加site2_com_8080,并在sites-enabled下建立符号连接。
site2_com_8080的主要配置如下:
ServerAdmin webmaster@localhost
ServerName site2.com
DocumentRoot /var/www/site2_com_8080
Options FollowSymLinks
AllowOverride None
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
… …
在/var/www下建立site2_com_8080目录,方法同上。
重启Apache2,访问http://site2.com:8080,我们将看到“Welcome to Site2 through 8080”。
分享到:
相关推荐
### Apache配置多个站点知识点 #### 一、概述 在日常的Web服务器管理中,经常会遇到需要在同一台服务器上运行多个不同项目的场景。Apache作为一款广泛使用的开源Web服务器软件,提供了非常灵活的配置方式来实现这...
在 CentOS 系统中,Apache 是一个广泛使用的 Web 服务器软件,它可以用来托管多个不同的网站或应用服务。为了实现这一点,我们需要对 Apache 进行配置,使其支持多域名或多端口映射。本文将详细介绍如何在 CentOS 下...
linux apache下多个站点配置,
要实现每个站点使用独立的`php.ini`,我们需要编辑Apache的配置文件(通常是`httpd.conf`或`apache2.conf`)。在Apache的配置中,`VirtualHost`指令用于定义一个虚拟主机,即一个独立的网站。我们可以在每个`Virtual...
### Apache配置多端口及Apache端口修改方法详解 在多服务器环境或单一服务器上运行多个站点时,正确配置Apache的端口变得至关重要。本文将深入解析如何在Apache中配置多端口,以及如何修改Apache的默认端口,确保您...
### 在Apache中配置多个域名 #### 知识点一:Apache服务器基础...通过以上步骤,您可以在Apache服务器上成功配置多个域名,从而实现多站点的部署和管理。这不仅提高了服务器资源的利用率,还简化了管理和维护工作。
配置Apache服务器以实现多站点功能是一项常见的任务,尤其是在需要在一个服务器上托管多个独立网站时。Apache是世界上最流行的Web服务器软件之一,其灵活性和可配置性使得管理多个网站变得简单。以下是一份详细的...
Apache服务器是世界上最流行的Web服务器软件之一,其强大的灵活性和可扩展性使得用户可以通过配置不同的虚拟主机来服务多个网站。在本篇文章中,我们将探讨如何通过配置Apache以在不同的端口上访问不同的站点。 ...
Apache服务器配置全攻略 ...总的来说,Apache服务器配置涉及多个层面,理解并熟练运用这些知识点,将使你能够灵活地管理和优化服务器,为用户提供高效、安全的服务。不断学习和实践,你将成为Apache服务器配置的专家。
这种方法允许我们在同一个端口上为不同的域名配置多个网站。 #### 基本概念 1. **NameVirtualHost**: 在Apache中定义一个名称虚拟主机时,必须先声明`NameVirtualHost`指令。该指令告诉Apache服务器监听哪些端口或...
配置多个端口的 Apache 和 Tomcat 服务器 在 web 服务器配置中,配置多个端口是指在同一台服务器上运行多个 web 服务器,每个服务器监听不同的端口号,以实现不同的服务或项目。在本文中,我们将介绍如何配置 ...
在了解如何在 CentOS 下使用 Apache 搭建多个站点之前,我们需要先掌握一些基础知识: 1. **虚拟主机**(Virtual Host):指的是在同一台物理服务器上通过不同的域名或者 IP 地址来区分不同的网站。 2. **Apache ...
总结,Apache配置涉及到服务器的启动、停止、配置文件的修改、模块的加载、安全性设置以及性能优化等多个方面。理解和掌握这些知识点,将有助于构建高效、安全的Web服务器环境。通过阅读`apache 配置1.doc`、`apache...
Apache 是使用最广的 Web 服务器之一,有多个操作系统平台版本,它可以运行在几乎所有广泛使用的计算机系统平台上,以高效、稳定、安全、免费而著称。作为 Web 服务器,Apache 可以响应对 HTML 页面的访问请求。 3....
2. **配置默认站点**:Apache的配置文件通常位于`/etc/apache2`目录下。主配置文件是`apache2.conf`或`httpd.conf`。在`sites-available`目录下,你可以创建一个新的配置文件,如`default.conf`,并启用它使用`a2...
4. **虚拟主机**:Apache2支持设置多个虚拟主机,可以在同一台服务器上托管多个网站。通过配置`VirtualHost`指令,指定不同的域名、IP地址或端口,实现不同站点的隔离。 5. **安全设置**:为了保护服务器,手册会...
在 Apache Web 服务器上配置多个站点是扩展网络服务的关键步骤,尤其对于那些希望在一个服务器上托管不同域名的应用或网站的企业和个人。Apache 提供了虚拟主机功能,使得在单个服务器实例上管理多个独立的站点变得...