分享web开发知识

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

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

Apache服务器——基于不同端口不同域名搭建的虚拟Web主机

发布时间:2023-09-06 01:58责任编辑:蔡小小关键词:Web
Apache 简介:

Apache HTTP Server是开源软件项目的杰出代表,基于标准的 HTTP 网络协议提供网页浏览服务,在 Web 服务区领域长期保持着超过半数的份额。Apache 服务器可以运行在Linux、Unix、Windows等多种操作系统平台中。

Apache的主要特点:

1.源代码开放;
2.跨平台应用;
3.支持各种 Web 编程语言;
4.模块化设计;
5.运行非常稳定;
6.良好的安全性。

虚拟 Web 主机:

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

使用 httpd 可以非常方便的搭建虚拟主机服务器,只需要运行一个httpd服务就能够同时支撑大量的 Web 站点。httpd 支持的虚拟主机类型包括以下三种:
1.基于域名:为每个虚拟主机使用不同的域名,但是其对应的IP地址是相同的。
2.基于 IP 地址:为每个虚拟主机使用不同的域名,且各自对应的 IP 地址也不相同。
3.基于端口:这种方式并不使用域名、IP 地址来区分不同的站点内容,而是使用不同的 TCP 端口号,因此要求用户在浏览不同的虚拟站点时需要同时指定端口号才能访问。

本次我们在 CentOS7 上搭建一台 Apache 服务器,并在这台服务器上配置基于域名及基于端口的不同 Web 站点。

实验环境:

CentOS 7 (搭建httpd 网站服务,DNS 域名解析服务)
IP 地址:192.168.100.200
挂载镜像光盘到目录/mnt:mount /dev/cdrom /mnt

开始实验:

一:测试 Apache 服务

搭建 httpd 服务:

rpm -ivh /mnt/Packages/httpd-2.4.6-67.el7.centos.x86_64.rpm

编辑httpd.conf配置文件:

vim /etc/httpd/httpd.confListen 192.168.100.200:80#Listen 80ServerName www.wzn.com:80

测试:

关闭防火墙,开启服务并尝试访问:

systemctl stop firewalldsetenforce 0systemctl start httpd

多个域名及端口的虚拟 Web 主机的配置文件在安装目录下的区域配置项中,其主要形式如下:
<Directory /> ????????????????//定义"/"目录区域的开始
Options FollowSymlinks ???//控制选项,允许使用符号链接
AllowOverride None ???????//不允许隐含控制文件中的覆盖配置
Order deny,allow ?????????//访问控制策略的应用顺序
Deny from all ????????????//禁止任何人访问此区域
</Directory> ?????????????????//定义"/"目录区域的结束


二:基于不同域名的虚拟主机

创建不同域名访问的配置文件:

[root@CentOS7-1 ~]# cd /etc/httpd/conf.d/[root@CentOS7-1 conf.d]# vim vhost.conf <Directory /var/www/html> ??????????//设置目录访问权限 ????Order allow,deny ??????????Allow from all ??????????</Directory> ????NameVirtualHost 192.168.100.200:80 ?//设置虚拟主机监听地址<VirtualHost 192.168.100.200:80> ???//设置wzn虚拟站点区域 ???ServerAdmin admin@wzn.com ???????//管理员邮箱 ???DocumentRoot /var/www/html/wzn/ ??//虚拟主机目录 ???ServerName www.wzn.com ??????????//域名 ???ErrorLog logs/wzn.com-error_log ?//错误日志> ????????CustomLog logs/wzn.com-access_log common //访问日志</VirtualHost>NameVirtualHost 192.168.100.200:80<VirtualHost 192.168.100.200:80> ???ServerAdmin admin@wzn01.com ???DocumentRoot /var/www/html/wzn01/ ???ServerName www.wzn01.com ???ErrorLog logs/wzn01.com-error_log ???CustomLog logs/wzn01.com-access_log common</VirtualHost>

为虚拟主机准备网页文档:

[root@CentOS7-1 ~]# mkdir /var/www/html/wzn[root@CentOS7-1 ~]# mkdir /var/www/html/wzn01[root@CentOS7-1 ~]# echo "<h1>this is wzn.com</h1>" > /var/www/html/wzn/index.html[root@CentOS7-1 ~]# echo "<h1>this is wzn01.com</h1>" > /var/www/html/wzn01/index.html

我们要用到域名解析服务,安装 bind 进行域名解析:

[root@CentOS7-1 ~]# rpm -ivh /mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm 

编辑 bind 主配置文件:

[root@CentOS7-1 conf.d]# vim /etc/named.confoptions { ???????listen-on port 53 { 192.168.100.200; }; ?//监听本机地址 ???????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; }; ??????//允许任意地址解析

编辑区域配置文件,将需要解析的域名放入 zone 中:

[root@CentOS7-1 ~]# vim /etc/named.rfc1912.zones ##省略部分信息##zone "wzn.com" IN { ???????type master; ???????file "wzn.com.zone"; ???????allow-update { none; };};zone "wzn01.com" IN { ???????????????type master; ???????file "wzn01.com.zone"; ???????allow-update { none; };};

配置区域配置文件:

[root@CentOS7-1 ~]# cd /var/named/[root@CentOS7-1 named]# cp -p named.localhost wzn.com.zone[root@CentOS7-1 named]# vim wzn.com.zone $TTL 1D@ ??????IN SOA ?@ admin ( ???????????????????????????????????????0 ??????; serial ???????????????????????????????????????1D ?????; refresh ???????????????????????????????????????1H ?????; retry ???????????????????????????????????????1W ?????; expire ???????????????????????????????????????3H ) ???; minimum ???????NS ?????@ ???????A ??????192.168.100.200www IN ?A ??????192.168.100.200

由于 wzn01.com 的区域配置文件和 wzn.com 相同,故直接保留权限复制即可:

[root@CentOS7-1 named]# cp -p wzn.com.zone wzn01.com.zone

测试

重启服务并测试:

[root@CentOS7-1 named]# systemctl restart named[root@CentOS7-1 named]# systemctl restart httpd



三:基于端口的虚拟主机

创建不同端口访问的配置文件:

[root@CentOS7-1 ~]# vim /etc/httpd/conf.d/vhostport.conf ???????????????????????????????//创建独立的配置文件<Directory /var/www/html> ??????????//设置目录访问权限 ???Order allow,deny ?????????Allow from all ??????????</Directory> ????NameVirtualHost 192.168.100.200:80 ?//设置虚拟主机监听地址<VirtualHost 192.168.100.200:80> ???//设置wzn03虚拟站点区域 ??ServerAdmin admin@wzn03.com ???????//管理员邮箱 ??DocumentRoot /var/www/html/wzn03 ??//虚拟主机目录 ??ServerName www.wzn03.com ??????????//域名 ??ErrorLog logs/wzn03.com-error_log ?//错误日志 ??CustomLog logs/wzn03.com-access_log common //访问日志</VirtualHost>NameVirtualHost 192.168.100.200:8080<VirtualHost 192.168.100.200:8080> ??ServerAdmin admin@wzn04.com ??DocumentRoot /var/www/html/wzn04 ??ServerName www.wzn04.com ??ErrorLog logs/wzn04.com-error_log ??CustomLog logs/wzn04.com-access_log common</VirtualHost>

为虚拟主机准备网页文档:

[root@CentOS7-1 ~]# mkdir /var/www/html/wzn03[root@CentOS7-1 ~]# mkdir /var/www/html/wzn04[root@CentOS7-1 ~]# echo "<h1>this is wzn03.com</h1>" > /var/www/html/wzn/index.html[root@CentOS7-1 ~]# echo "<h1>this is wzn04.com</h1>" > /var/www/html/wzn01/index.html

更改主配置文件添加监听端口 8080 :

[root@CentOS7-1 ~]# vim /etc/httpd/conf/httpd.conf##省略部分信息#Listen 192.168.100.200:80Listen 8080 ????//添加 8080 端口

测试:

重启 httpd 服务,并通过客户机访问不同端口:

[root@CentOS7-1 ~]# systemctl restart httpd

Apache服务器——基于不同端口不同域名搭建的虚拟Web主机

原文地址:http://blog.51cto.com/13625676/2125695

知识推荐

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