Apache搭建Web主机(虚拟目录分别基于IP地址端口主机名)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache搭建Web主机(虚拟目录分别基于IP地址端口主机名)相关的知识,希望对你有一定的参考价值。

Apache介绍

Apache HTTP Server是一款开源的网站服务软件,在Web服务器领域中长期保持着超过半数的份额,Apache服务器可以运行在Linux、UNIX、Windows等多数操作系统平台中。

Apache服务器在功能、性能和安全性等方面的表现都是比较突出的,可以较好地满足Web服务器用户的应用需求,其主要特点包括以下几个方面:

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

构建虚拟Web主机

在同一台Apache服务器中运行多个Web站点,其中的每一个站点实际上并不独立占用整个服务器,通过虚拟Web主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本。

Apache支持的虚拟主机类型为以下三种:

  1. 基于IP地址

需要为每个虚拟主机使用不同的域名,且各自对应的IP地址也不相同。这种方式需要为服务器配备多个网络接口,因此应用并不是非常广泛;

  1. 基于IP端口

使用不同的TCP端口号来区分不同的站点内容,但是用户在浏览不同的虚拟站点时需要同时指定端口号才能够访问;

  1. 基于主机名【常用】

每个虚拟主机使用不同的域名,但是其对应的IP地址是相同的;

实验环境

  • rhel6.5操作系统
  • 服务器IP地址:192.168.100.5
  • rhel6.5的镜像光盘挂载至/mnt/cdrom/

实验内容

  1. 虚拟目录(用户授权限制)
  2. 基于IP地址
  3. 基于IP端口
  4. 基于主机名【常用】

部署服务

安装Apache服务器(httpd)

1.检查并安装httpd服务

[[email protected] ~]# rpm -q httpd //检查是否已安装httpd
httpd-2.2.15-29.el6_4.x86_64
[[email protected] ~]# rpm -ivh /mnt/cdrom/Packages/httpd-2.2.15-29.el6_4.x86_64.rpm

2.关闭安全设置和防火墙

setenforce 0
service iptables stop

一. 虚拟目录(用户授权限制)

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

ServerName www.yum01.com:80 //设置主机名
Listen 192.168.100.5:80 //设置监听IP地址
Include conf.d/*.conf //开启加载conf.d目录下以.conf为后缀的配置文件

  1. 在/etc/httpd/conf.d/目录下新建vdir.conf(虚拟目录文件)
cd /etc/httpd/conf.d/
vim vdir.conf                       //新建vdir.conf配置文件

//以下为虚拟目录定义配置文件

Alias /bbs "/opt/bbs/" //设置别名

<Directory "/opt/bbs/"> //定义虚拟目录
Options Indexes MultiViews FollowSymLinks
AllowOverride None
authname "Auth Directory" //认证领域的名称
authtype basic //基本认证方式
authuserfile /etc/httpd/user //基本认证用户账户、密码的认证文件路径
require Valid-user //授权用户可以进行访问
</Directory>

3.创建/opt/bbs目录,并新建bbs站点首页

mkdir /opt/bbs
echo "<h1>This is bbs web.</h1>" > /opt/bbs/index.html

  1. 创建用户认证数据文件
htpasswd -c /etc/httpd/conf.d/user zhangsan

技术分享图片

  1. 重启httpd服务
    service httpd restart

测试

服务器ip信息:
技术分享图片

客户机ping服务器测试:
技术分享图片

访问虚拟目录站点:
技术分享图片

技术分享图片

2. 基于IP地址

待续...

3. 基于端口

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

vim vport.conf                       //新建vport.conf配置文件

NameVirtualHost 192.168.100.5:80 //虚拟主机名称

<VirtualHost 192.168.100.5:80>
ServerAdmin [email protected] //管理员邮箱
DocumentRoot /opt/yun01/ //网站站点目录
ServerName www.yun01.com //域名
ErrorLog logs/yun01.com-error_log //错误日志
CustomLog logs/yun01.com-access_log common //访问日志
</VirtualHost>

NameVirtualHost 192.168.100.5:81 //虚拟主机名称

<VirtualHost 192.168.100.5:81>
ServerAdmin [email protected] //管理员邮箱
DocumentRoot /opt/yun02/ //网站站点目录
ServerName www.yun02.com //域名
ErrorLog logs/yun02.com-error_log //错误日志
CustomLog logs/yun02.com-access_log common //访问日志
</VirtualHost>

2.创建/opt/yun01、/opt/yun02站点目录,并新建各站点首页文件(index.html)

mkdir /opt/yun01 /opt/yun02 //创建站点目录
echo "<h1>this is yun01.com web.</h1>" > /opt/yun01/index.html //站点yun01添加index.html文件
echo "<h1>this is yun02.com web.</h1>" > /opt/yun02/index.html //站点yun02添加index.html文件

  1. 修改httpd.conf配置文件
vim /etc/httpd/conf/httpd.conf

Listen 192.168.100.5:81 //添加81端口的监听地址

  1. 重启httpd服务
service httpd restart

测试

访问192.168.100.5:80
技术分享图片
访问192.168.100.5:81
技术分享图片

4. 基于主机名【常用】

  1. 在/etc/httpd/conf.d/目录下新建vhost.conf(虚拟目录文件)
cd /etc/httpd/conf.d/
vim vhost.conf                       //新建vhost.conf配置文件

NameVirtualHost 192.168.100.5:80 //虚拟主机名称

<VirtualHost 192.168.100.5:80>
ServerAdmin [email protected] //管理员邮箱
DocumentRoot /opt/yun03/ //网站站点目录
ServerName www.yun03.com //域名
ErrorLog logs/yun03.com-error_log //错误日志
CustomLog logs/yun03.com-access_log common //访问日志
</VirtualHost>

NameVirtualHost 192.168.100.5:80 //虚拟主机名称

<VirtualHost 192.168.100.5:80>
ServerAdmin [email protected] //管理员邮箱
DocumentRoot /opt/yun04/ //网站站点目录
ServerName www.yun04.com //域名
ErrorLog logs/yun04.com-error_log //错误日志
CustomLog logs/yun04.com-access_log common //访问日志
</VirtualHost>

2.创建/opt/yun03、/opt/yun04站点目录,并新建各站点首页文件(index.html)

mkdir /opt/yun03 /opt/yun04 //创建站点目录
echo "<h1>this is yun03.com web.</h1>" > /opt/yun03/index.html //站点yun03添加index.html文件
echo "<h1>this is yun04.com web.</h1>" > /opt/yun04/index.html //站点yun04添加index.html文件


  1. 安装DNS服务器
    3.1 安装bind软件包
rpm -ivh /mnt/cdrom/Packages/bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm

3.2 编辑主配置文件

 vim /etc/named.conf

options {
listen-on port 53 { 192.168.100.5; }; //修改指定监听IP
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; }; //允许any(所有人)访问
recursion yes;

dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;

/ Path to ISC DLV key /
bindkeys-file "/etc/named.iscdlv.key";

managed-keys-directory "/var/named/dynamic";
};

3.3 编辑区域配置文件

vim /etc/named.rfc1912.zones

zone "yun03.com" IN {
type master;
file "yun03.com.zone";
};

zone "yun04.com" IN {
type master;
file "yun04.com.zone";
};

3.4 切换到/var/named目录下

cd /var/named

3.5 复制模板文件

cp -p named.localhost yun03.com.zone

3.6 编辑区域数据配置文件

vim yun03.com.zone

技术分享图片

由于yun04.com和yun03.com解析文件都一样,这里直接复制yun03.com.zone文件

cp -p yun03.com.zone yun04.com.zone

3.7 加入named服务并重启该服务

chkconfig named on
service named restart //重启named服务
service httpd restart //重启httpd服务

测试

访问www.yun03.com
技术分享图片

访问www.yun04.com
技术分享图片

以上是关于Apache搭建Web主机(虚拟目录分别基于IP地址端口主机名)的主要内容,如果未能解决你的问题,请参考以下文章

CentOS 7.4——Apache应用之二,构建Web虚拟主机

Apache 创建虚拟主机目录和设置默认访问页面

基于Linux搭建apache服务后,怎么构建web虚拟主机?

Apache的虚拟主机

Apache虚拟机的实现 俗称“一机多站“” 实例篇

Apache 构建虚拟web主机 与 日志分隔