专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »web服务器 » apache虚拟主机:Apache虚拟主机快速搭建攻略 »正文

apache虚拟主机:Apache虚拟主机快速搭建攻略

来源: 发布时间:星期四, 2009年1月15日 浏览:35次 评论:0
  在单个机器上虚拟主机通常不只运行个web站点虚拟主机可以是基于ip也就是说你要为每个web站点配置个区别ip地址虚拟主机也可以是基于名称即在每个ip地址上对应着多个域名你还可以在区别端口上运行你web页面如8080或8090事实上它们运行在相同物理服务器上最终用户察觉不到本专题描述在OpenSuse 10.2服务器上配置步骤   首先我想说这不是配置Apache服务器唯思路方法有许多思路方法可以实现这个目标但我选择是这个思路方法我不能保证这个思路方法能在你服务器或发行版上很好地运转

  我们将在独立位置(目录)下配置 4种区别web页面并使用区别起始页(index.html)验证原理


  </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 [email protected] 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 [email protected] 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

  步骤3:配置个基于名称虚拟主机

  使用类似步骤2中思路方法利用默认模板创建个新配置文件:

  cd /etc/apache2/vhosts.d

  cp vhost.template vhost-www.conf

  下面这两行是需要你修改:

  ServerName   使用在URL看到域名

  UseCanonicalName On

  注释:在Apache上开启了UseCanonicalName后它将使用ServerName和Port构造服务器规范标准名称这个名称用于所有自身参考URLs以及CGIs中SERVER_NAME和SERVER_PORT

  如果你服务器有多个ip地址或你想使用区别端口请修改下面这行:

  VirtualHost 192.168.33.101:80

  整个文件看起来应该象:

  <VirtualHost 192.168.33.101:80>

  ServerAdmin [email protected] e-mail address is being protected from spam bots, you need JavaScript enabled to view it

  ServerName www.myserver.com

  DocumentRoot /srv/www/htdocs/server_www

  ErrorLog /var/log/apache2/server_www.log

  CustomLog /var/log/apache2/access_www.log combined

  HostnameLookups Off

  UseCanonicalName On

  ServerSignature On

  ScriptAlias /cgi-bin/ "/srv/www/htdocs/server_www/cgi-bin/"

  <Directory "/srv/www/htdocs/server_www/cgi-bin">

  AllowOverride None

  Options +ExecCGI -Includes

  Order allow,deny

  Allow from all

  </Directory>

  <Directory "/srv/www/htdocs/server_www">

  Options Indexes FollowSymLinks

  AllowOverride None

  Order allow,deny

  Allow from all

  </Directory>

  </VirtualHost>

  步骤4:hack listen.conf文件

  下面文件允许你绑定ip地址和/或端口到Apache请修改下面这些行:

  Listen 添加运行web页面端口可以添加多个

  NameVirtualHost  这个指令告诉Apache在哪个ip地址(可选)哪个端口上监听客户端包含在HTTP头中域名请求个参数可以是个完全限定域名但是推荐使用ip地址第 2个参数是端口(可选)默认情况下使用是80端口通过Listen指令配置

  这个文件内容看起来象:

  Listen 80

  Listen 8090

  <IfDefine SSL>

  <IfDefine !NOSSL>

  <IfModule mod_ssl.c>

  Listen 443

  </IfModule>

  </IfDefine>



  </IfDefine>

  NameVirtualHost 192.168.33.101:80

  要对你配置进行故障诊断你应该在Linux终端运行下面命令:

  tail –f /var/log/messages

  在修改了配置文件后别忘了使用下面命令重启apache(观察):

  service apache2 restart

  或

  /etc/init.d/apache2 restart



相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: