在单个机器上的虚拟主机通常不只运行一个web站点,虚拟主机可以是基于ip的,也就是说你要为每个web站点配置一个不同的ip地址,虚拟主机也可以是基于名称的,即在每个ip地址上对应着多个域名,你还可以在不同的端口上运行你的web页面,如8080或8090,事实上它们运行在相同的物理服务器上,最终用户察觉不到,本专题描述在OpenSuse 10.2服务器上的配置步骤。
首先我想说的是,这不是配置Apache服务器唯一的方法,有许多方法可以实现这个目标,但我选择的是这个方法,我不能保证这个方法能在你的服务器或发行版上很好地运转。
我们将在独立的位置(目录)下配置四种不同的web页面,并使用不同的起始页(index.html)验证原理。
简单网络结构图
步骤1:创建index页面
Suse通常将web页面存储在/srv/www/htdocs目录下,我们将使用同一个目录,但为每个虚拟主机单独创建一个子目录:
|
mkdir /srv/www/htdocs/server_port80 mkdir /srv/www/htdocs/server_port8090 mkdir /srv/www/htdocs/server_www mkdir /srv/www/htdocs/server_www1 |
然后你就可以将内容存储在这个目录下,首先我们创建一个包含服务器类型信息的index.html文件,文件内容如下:
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"> <title></title> </head> <body> <div style="text-align: center;"><span style="font-weight: bold;">This is my webserver working on Port 80.<br> <a href="http://www.linux-tip.net">Linux-Tip.net</a></span></div> </body> </html> |
将内容修改为你想要的,然后在每个子目录下保存一个修改过的index文件。
步骤2:配置基于ip的虚拟主机
Suse在/etc/apache2/vhosts.d目录下存储虚拟主机配置文件,在启动过程中,Apache会自动使用这个目录下的所有文件完成最后配置。
使用模板文件,可以很容易就创建一个新的虚拟主机配置文件:
|
cd /etc/apache2/vhosts.d/ cp vhost.template vhost-port80.conf |
这样拷贝默认的模板文件并创建一个新配置文件,新的配置文件将用于基于ip的运行在端口80上的虚拟主机,我建议使用vi编辑器编辑这个新创建的文件:
| vi vhost-port80.conf |
正如你所看到的,这个文件包含了配置一个虚拟主机需要的全部信息,同时还包括了大量的解释和注释信息,可以将这些解释信息删除保持文件苗条。
下面这些行是你应该修改的:
|
VirtualHost |
设置ip地址和端口 |
| ServerAdmin | web管理员的email地址 |
| DocumentRoot |
web页面的路径(参考步骤1) |
| ErrorLog |
错误日志文件路径 |
| CustomLog |
访问日志文件路径 |
| UseCanonicalName | 本例中将其保留为off |
|
ScriptAlias |
如果你想在你的wen页面上运行cgi脚本,这个就是脚本的位置 |
文件样例:
|
<VirtualHost 192.168.33.101:80> ServerAdmin webmaster@myserver.comThis e-mail address is being protected from spam bots, you need JavaScript enabled to view it ServerName server.myserver.com DocumentRoot /srv/www/htdocs/server_port80 ErrorLog /var/log/apache2/server_port80.log CustomLog /var/log/apache2/access_port80.log combined HostnameLookups Off UseCanonicalName Off ServerSignature On ScriptAlias /cgi-bin/ "/srv/www/htdocs/server_port80/cgi-bin/" <Directory "/srv/www/htdocs/server_port80/cgi-bin"> AllowOverride None Options +ExecCGI -Includes Order allow,deny Allow from all </Directory> <Directory "/srv/www/htdocs/server_port80"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> </VirtualHost> |
如果你想在不同的端口上运行你的web页面,使用下面的配置文件:
|
<VirtualHost 192.168.33.101:8090> ServerAdmin webmaster@myserver.comThis e-mail address is being protected from spam bots, you need JavaScript enabled to view it ServerName server.myserver.com DocumentRoot /srv/www/htdocs/server_port8090 ErrorLog /var/log/apache2/server_port8090.log CustomLog /var/log/apache2/access_port8090.log combined HostnameLookups Off UseCanonicalName Off ServerSignature On ScriptAlias /cgi-bin/ "/srv/www/htdocs/server_port8090/cgi-bin/" <Directory "/srv/www/htdocs/server_port8090/cgi-bin"> AllowOverride None Options +ExecCGI -Includes Order allow,deny Allow from all </Directory> <Directory "/srv/www/htdocs/server_port8090"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> </VirtualHost> |
正常情况下,web服务器监听80端口,如果你想修改这个端口或添加一个端口如8090,你必须hack listen.conf文件,详细信息请参考步骤4。
相关专题
- Apache配置专题 (875篇文章)
- Apache技术专题 (875篇文章)
- 网络游戏攻略 (4723篇文章)
- 机房 托管 (169篇文章)
- 三步让你的Ubuntu桌面美观并且高效 (440次浏览)
- Ubuntu 8.04 中开启3D桌面特效与设置方法 (241次浏览)
- Ubuntu自由潮流新宠 挑战微软桌面 (178次浏览)
- 巧用键盘快捷键 让你的Ubuntu 变得更快 (146次浏览)
- Ubuntu发烧友三部曲 进阶篇 (127次浏览)
- 七大操作系统一季度漏洞比拼 (122次浏览)
- 经典文档:Linux网络安全配置基础详解 (111次浏览)
- 在Windows XP系统下虚拟机Linux文件共享 (92次浏览)
- 用 Wubi 安装 Ubuntu 8.04 只需五步 (92次浏览)
- Ubuntu Linux系统建立FTP服务器方法步骤 (90次浏览)




