分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

Apache构建虚拟Web主机

发布时间:2023-09-06 01:58责任编辑:苏小强关键词:Web
Apache HTTP Server是开源软件项目的杰出代表,基于标准的HTTP网络协议提供网页浏览服务,在Web服务器领域中长期保持着超过半数的份额。Apache服务器可以运行在Linux、UNIX、Windows等多种操作系统平台中。

Apache的主要特点:

  • 开放源代码
  • 跨平台应用
  • 支持各种Web编程语言
  • 模块化设计
  • 运行非常稳定
  • 良好的安全性

在同一台Apache服务器中运行多个web站点,其中的每一个站点实际上不会占用着整个服务器,通过虚拟web主机服务可以充分利用服务器的硬件资源,从而降低网站构建以及运行成本。虚拟主机主要类型分为三种:

  1. 基于IP端口
    对每个不用域名的虚拟主机设置单独IP,因此,在服务器中需要设置多个网卡,对于硬件成本和IP成本要求都高,此种方式在实际中不常用,本文暂且略过。
  2. 基于端口IP
    使用TCP不用端口来区分不用的站点内容,需要在用户访问站点时跟上指定端口号才可实现访问。
  3. 基于主机名
    每个服务器主机可以构建多个不用域名服务器,但都使用相同IP地址;此种方式在实际中较为常用。

实验环境:

  • RHEL6.5操作系统
  • 服务器IP地址:192.168.100.110
  • RHEL镜像光盘挂载至/mnt目录下

环境部署

1.检查并安装httpd服务器

rpm -q httpd ??????????????//检查httpd服务器是否已安装httpd-2.2.15-29.el6_4.x86_64 ??????????????????//已安装httpd服务器

2.关闭防火墙和增强安全功能

service iptables stopsetenforce 0

建立Apache虚拟目录(用户访问控制)

vim /etc/httpd/conf/httpd.conf ??????????//编辑httpd配置文件

Listen 192.168.100.110:80 ????????//更改监听地址和监听端口 ???????
#Listen 80 ???????????//注释IPV6的监听 ???????
ServerName www.yun.com:80 ????//设置主机名

vim /etc/httpd/conf.d/vdir.conf //在子配置目录下创建虚拟目录配置文件vdir.conf

//以下为写入vdir.conf中的内容 ????
Alias /test "/opt/test/" ????????//设置别名 ??????
<Directory "/opt/test/"> ?????????//定义虚拟目录 ?
Options Indexes MultiViews FollowSymLinks ????
AllowOverride None ???????
AuthName "hello" ?????????//认证名称 ?????
authtype basic ???????????????//基本认证方式 ?
authuserfile /etc/httpd/user ?????????//指定用户认证文件存放位置 ?
#authgroupfile /etc/httpd/group ????????????????????????????????????
#require Valid-user ????????????//设置用户访问权限 ??????
#require user test ?????
#Require group admin ??????
</Directory> ????

mkdir –p /opt/test ?????????//创建虚拟目录站点 ?????echo “this is vdir test” > /opt/test/index.html ????//新建站点首页 ?service httpd start ????//开启httpd服务

用户授权访问:

vim /etc/httpd/conf.d/vdir.conf ????//编辑服务子配置文件

<Directory "/opt/test/"> ?????????//定义虚拟目录 ?
Options Indexes MultiViews FollowSymLinks ????
AllowOverride None ???????
AuthName "hello" ?????????//认证名称 ?
authtype basic ???????????????//基本认证方式 ?
authuserfile /etc/httpd/user ?????????//指定用户认证文件存放位置 ??
#authgroupfile /etc/httpd/group ????
require Valid-user ????????????//设置用户访问权限 ???
#require user test ????
#Require group admin ??????
</Directory>

htpasswd –c /etc/httpd/user zhangsan ???????????//创建授权访问用户zhangsanservice httpd restart ??????????????//重启httpd服务

再次访问网页时会跳出账号密码验证登录窗口:

相同IP不同端口情况下:

1. 在/etc/httpd/conf.d目录下新建vport.conf(虚拟目录文件)

cd /etc/httpd/conf.d/vim vport.conf ?????????????????//新建vport.conf配置文件

写入以下内容:

NameVirtualHost 192.168.100.110:80 ???????//虚拟主机IP地址及端口号 ???
<VirtualHost 192.168.100.110:80> ?
ServerAdmin webmaster@dummy-host.example.com ??//管理员邮箱 ???
DocumentRoot /opt/yun/ ????//网页站点目录 ?
ServerName www.yun.com ????//域名 ?
ErrorLog logs/benet.com-error_log ?????//错误日志 ?
CustomLog logs/benet.com-access_log common ????//访问日志 ?
</VirtualHost> ???
NameVirtualHost 192.168.100.110:81 ???????//虚拟主机IP地址及端口号 ???
<VirtualHost 192.168.100.110:81> ?
ServerAdmin webmaster@dummy-host.example.com ??//管理员邮箱 ???
DocumentRoot /opt/yun01/ ??????//网页站点目录 ?
ServerName www.yun.com ????//域名 ?
ErrorLog logs/benet.com-error_log ?????//错误日志 ?
CustomLog logs/benet.com-access_log common ????//访问日志 ?
</VirtualHost>

2. 创建yun、yun01的站点目录,新建各站点首页文件

mkdir /opt/yun /opt/yun01 ??????//创建站点目录echo ”yun port 80 test” > /opt/yun/index.html ??//添加yun站点的首页内容echo ”yun01 port 81 test” > /opt/yun01/index.html ?//添加yun01站点的首页内容

3. 修改httpd.conf配置文件

vim /etc/httpd/conf/httpd.confListen 192.168.100.110:81 ??????????//添加81端口的监听地址

4. 重启httpd服务

service httpd restart

5. 测试


相同IP不同主机情况下:

1. 在/etc/httpd/conf.d目录下新建vhost.conf

cd /etc/httpd/conf.d/vim vhost.conf ?????????//新建vhost.conf配置文件

写入以下内容:

NameVirtualHost 192.168.100.110:80 //虚拟主机名称 ????
<VirtualHost 192.168.100.110:80> ???????????????????
ServerAdmin admin@benet.com //管理员邮箱 ?
DocumentRoot /opt/benet/ //网站站点目录 ??
ServerName www.benet.com //域名 ??
ErrorLog logs/benet.com-error_log //错误日志 ?
CustomLog logs/benet.com-access_log common //访问日志 ????
</VirtualHost>

mkdir /opt/benet ???????????//创建www.benet.com的站点echo “this is benet” > /opt/benet/index.html ???????//创建首页及添加内容

2. 安装DNS服务器

安装bind软件包:

rpm –ivh /mnt/Packages/bind-9.8.2-0.17.rc1.el6_x86_64.rpm

编辑主配置文件

vim /etc/named.conf

options { ????
listen-on port 53 { 192.168.100.110; }; ??????
listen-on-v6 port 53 { ::1; }; ???
directory ??????"/var/named"; ????
dump-file ??????"/var/named/data/cache_dump.db"; ?????
statistics-file "/var/named/data/named_stats.txt"; ???????
memstatistics-file "/var/named/data/named_mem_stats.txt"; ????
allow-query ????{ any; }; ????
recursion yes; ???????

编辑区域配置文件

vim /etc/named.rfc1912.zones

zone "yun.com" IN { ??
type master; ?
file "yun.com.zone"; ?
allow-update { none; }; ??
}; ???

zone "benet.com" IN { ????
type master; ?
file "benet.com.zone"; ???
allow-update { none; }; ??
}; ???

在/var/named目录下复制模板文件

cd /var/namedcp –p named.localhost yun.com.zone

编辑区域数据配置文件

vim yun.com.zone
cp –p yun.com.zone benet.com.zone ????//yun和benet区域数据配置文件相同,可直接复制

3.启动(重启)named及httpd服务:

service httpd restartservice named start

4.测试


Apache构建虚拟Web主机

原文地址:http://blog.51cto.com/13625810/2126218

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved