Apache服务器之------虚拟主机多功能配置

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

Apache虚拟主机的几种基本配置

虚拟主机是服务器采用的节省服务器硬件成本的技术,虚拟主机技术主要应用于HTTP、FTP、邮件等多种服务。将一台服务器的某项或者全部服务内容逻辑划分为多个服务单位,对外展现为一个服务器,从而充分利用服务器硬件资源。如果划分是系统级别,则成为虚拟服务器。

一、虚拟主机具有三种建立模式:
1、基于IP地址
2、基于端口
3、基于FQDN


好,废话不多说,直接上例子:
1、基于IP
如果希望使用172.16.4.1可以访问到/www/htdocs目录的内容,使用172.16.4.2可以访问到/www/web2目录中的内容,就需要配置/etc/httpd/conf/httpd.conf文件中的虚拟主机区域:

 
 
  1. <VirtualHost 172.16.4.1> 
  2.     ServerAdmin agony@example.com           ##这里指网站的管理员的邮箱地址 
  3.     DocumentRoot /www/htdocs            ##这里指的网页存放的目录 
  4.     ServerName 172.16.4.1               ##这里指的是网站的访问的IP地址 
  5.     Errorlog /var/log/htdocs_erro.log       ##这里是定义访问网站错误日志的存放地点 
  6.     CustomLog /var/log/htdocs_access.log        ##这里是定义访问网站的日志存放地点 
  7. </VirtualHost> 
  8.  
  9. <VirtualHost 172.16.4.2> 
  10.     ServerAdmin agony@example.com           ##这里指网站的管理员的邮箱地址 
  11.     DocumentRoot /www/web2              ##这里指的网页存放的目录 
  12.     ServerName 172.16.4.2               ##这里指的是网站的访问的IP地址        
  13.     Errorlog /var/log/web2_erro.log         ##这里是定义访问网站错误日志的存放地点 
  14.     CustomLog /var/log/web2_access.log      ##这里是定义访问网站的日志存放地点 
  15. </VirtualHost> 

注:这里默认监听的端口是80,如果需要重新设置,只需要在IP地址后面跟上端口号即可。

2、基于端口
如果希望使用172.16.4.1的80端口访问/www/htdocs目录的内容,使用172.16.4.1的8080端口访问/www/web2目录的内容,就需要在/etc/httpd/conf/httpd.conf里做如下的配置:

 
 
  1. <VirtualHost 172.16.4.1:80> 
  2.     ServerAdmin agony@example.com           ##这里指网站的管理员的邮箱地址 
  3.     DocumentRoot /www/htdocs            ##这里指的网页存放的目录 
  4.     ServerName 172.16.4.1:80            ##这里指的是网站的访问的IP地址以及端口号 
  5.     Errorlog /var/log/htdocs_erro.log       ##这里是定义访问网站错误日志的存放地点 
  6.     CustomLog /var/log/htdocs_access.log        ##这里是定义访问网站的日志存放地点 
  7. </VirtualHost> 
  8.  
  9. <VirtualHost 172.16.4.1:8080> 
  10.     ServerAdmin agony@example.com           ##这里指网站的管理员的邮箱地址 
  11.     DocumentRoot /www/web2              ##这里指的网页存放的目录 
  12.     ServerName 172.16.4.2:8080          ##这里指的是网站的访问的IP地址已经端口号       
  13.     Errorlog /var/log/web2_erro.log         ##这里是定义访问网站错误日志的存放地点 
  14.     CustomLog /var/log/web2_access.log      ##这里是定义访问网站的日志存放地点 
  15. </VirtualHost> 

3、基于FQDN,这也是最常用的方法
如果需要使用www.coolinuz.com访问/www/htdocs目录下的内容,使用www.magedu.com目录下的内容时,就需要将虚拟主机按照下面的配置方式进行配置:

 
 
  1. <VirtualHost 172.16.4.1> 
  2.     ServerAdmin agony@example.com           ##这里指网站的管理员的邮箱地址 
  3.     DocumentRoot /www/htdocs            ##这里指的网页存放的目录 
  4.     ServerName www.coolinuz.com         ##这里指的是访问网站时用的域名即FQDN 
  5.     Errorlog /var/log/htdocs_erro.log       ##这里是定义访问网站错误日志的存放地点 
  6.     CustomLog /var/log/htdocs_access.log        ##这里是定义访问网站的日志存放地点 
  7. </VirtualHost> 
  8.  
  9. <VirtualHost 172.16.4.1> 
  10.     ServerAdmin agony@example.com           ##这里指网站的管理员的邮箱地址 
  11.     DocumentRoot /www/web2              ##这里指的网页存放的目录 
  12.     ServerName www.magedu.com           ##这里指的是网站的访问的IP地址已经端口号       
  13.     Errorlog /var/log/web2_erro.log         ##这里是定义访问网站错误日志的存放地点 
  14.     CustomLog /var/log/web2_access.log      ##这里是定义访问网站的日志存放地点 
  15. </VirtualHost> 

注:当使用基于FQDN建立虚拟主机时还需要开启这项<NameVirtualHost 172.16.4.1:80>,该项在httpd-2.2.3的配置文件中是存在的,在httpd-2.4.1中没有该项。

二、别名的配置
当需要用户请求的URL过长时,在Apache中可以通过别名的配置减少客户端URL的输入量,并且通过别名可以跳转网页存放的目录,

例如:
apache的默认存放网页目录为/www/htdocs中,其访问FQDN为www.coolinuz.com,现需要访问/www/phpmyadmin目录中的网页,那么就可以使用别名来定义,具体配置如下:

 
 
  1. NameVirtualHost 172.16.4.1:80 
  2. <VirtualHost 172.16.4.1:80> 
  3.     Alias /php "/www/phpmyadmin" 
  4.     ServerAdmin agony@example.com 
  5.     DocumentRoot /www/htdocs 
  6.     ServerName www.coolinuz.com 
  7.     Errorlog /var/log/htdocs_erro.log 
  8.     CustomLog /var/log/htdocs_access.log 
  9. </VirtualHost> 

这时用户只需要在将URL置于www.coolinuz.com/php即可正常访问/www/phpmyadmin目录中的内容。

Alias string FilePath
string:指访问原网页的URL后面追加的那段字符串
FilePath:指需要跳转到哪个目录。

三、客户端的访问控制
Apache默认情况下,允许所有客户端对已配置好的网站进行访问,通过Order、Allow、From、Deny这些参数来允许和阻止指定客户端对网站中的目录或内容的访问控制的。

客户端的制定方法:
1、具体的IP地址
2、指定的网络
3、FQDN
4、域
5、所有的客户端,使用关键字"All"


例如:www.coolinuz.com这个网站只允许172.16.0.0/16网络中的主机访问。

 
 
  1. <VirtualHost 172.16.4.1:80> 
  2.     ServerAdmin agony@example.com 
  3.     DocumentRoot /www/htdocs 
  4.     ServerName www.coolinuz.com 
  5.     Errorlog /var/log/htdocs_erro.log 
  6.     CustomLog /var/log/htdocs_access.log 
  7.     <Directory /www/htdocs> 
  8.         Order Allow,Deny 
  9.         Allow From 172.16.0.0/16 
  10.     </Directory> 
  11. </VirtualHost> 

注:Order Allow,Deny,如果没有其他的Allow或Deny定义,则其默认动作为Order最后一个动作,在这里是Deny,如果是"Order Deny,Allow",则其默认动作为Allow。

四、基于用户认证的方式进行访问
在Apache的默认情况下,允许客户端进行匿名访问,Apache可以实现基于身份认证和摘要式身份验证。这里只做基本身份验证的实现详解。
在做基本身份验证时,认证用户来源可以是htpasswd工具生成的密码文件。

具体实现步骤:
1、使用apache自带的htpasswd工具生成密码文件来作为用户访问认证的来源
格式htpasswd options FilePath user
    -c :第一次创建时使用该选项
    -m :将密码使用MD5加密存放
    -D :从密码文件中删除用户


如:创建一个用户redhat,将密码文件存放在/etc/httpd/.htpasswd
#htpasswd -cm /etc/httpd/.htpasswd redhat
删除用户
#htpasswd -D /etc/httpd/.htpasswd redhat

2、对指定的网页目录使用基本身份认证

如对www.coolinuz.com网站的访问需要基于用户认证
配置apache的主配置文件:/etc/httpd/conf/httpd.conf

 
 
  1. NameVirtualHost 172.16.4.1:80 
  2. <VirtualHost 172.16.4.1:80> 
  3.     ServerAdmin agony@example.com 
  4.     DocumentRoot /www/htdocs 
  5.     ServerName www.coolinuz.com 
  6.     Errorlog /var/log/htdocs_erro.log 
  7.     CustomLog /var/log/htdocs_access.log 
  8.     <Directory /www/htdocs> 
  9.         AuthName PRIVATE            ##这里指在需要用户认证时的提示信息 
  10.         AuthType Basic              ##这里指认证的类型为基本认证 
  11.         AuthUserFile /etc/httpd/.htpasswd   ##这里指存放密码文件的路径 
  12.         Require valid-user          ##这里指密码文件中允许访问的用户,这里指的是全部,如果要具体允许某些用户则可写为"Require User redhat centos" 
  13.     </Directory> 
  14. </VirtualHost> 

 

好了,到此apache的几种常用的配置到此就完成了,只需要重新载入配置文件或者重启服务即可生效了,下篇将讲述apache启用https功能。

 








本文转自 向阳草米奇 51CTO博客,原文链接:http://blog.51cto.com/grass51/812523,如需转载请自行联系原作者
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
9天前
|
人工智能 API 开发者
FastAPI开发者福音!FastAPI-MCP:将FastAPI秒变MCP服务器的开源神器,无需配置自动转换!
FastAPI-MCP是一款能将FastAPI应用端点自动转换为符合模型上下文协议(MCP)的开源工具,支持零配置自动发现接口并保留完整文档和模式定义。
257 14
FastAPI开发者福音!FastAPI-MCP:将FastAPI秒变MCP服务器的开源神器,无需配置自动转换!
|
13天前
|
Ubuntu 安全 网络安全
在Ubuntu系统下使用vsftpd配置FTP服务器的步骤
以上就是在Ubuntu系统下使用vsftpd配置FTP服务器的步骤。这些步骤都是基础的,但足够让你建立一个简单的FTP服务器。如果你需要更高级的功能,例如SSL加密、虚拟用户等,你可能需要进一步研究vsftpd的配置选项。
64 13
|
22天前
|
存储 监控 API
【Azure App Service】分享使用Python Code获取App Service的服务器日志记录管理配置信息
本文介绍了如何通过Python代码获取App Service中“Web服务器日志记录”的配置状态。借助`azure-mgmt-web` SDK,可通过初始化`WebSiteManagementClient`对象、调用`get_configuration`方法来查看`http_logging_enabled`的值,从而判断日志记录是否启用及存储方式(关闭、存储或文件系统)。示例代码详细展示了实现步骤,并附有执行结果与官方文档参考链接,帮助开发者快速定位和解决问题。
75 23
|
15天前
|
存储 弹性计算 数据处理
阿里云服务器2核8G、4核16G、8核32G配置热门实例价格、性能与场景全攻略
2核8G/4核16G/8核32G配置的阿里云服务器在阿里云活动中目前有经济型e、通用算力型u1、通用型c7、通用型g8i和通用型g8y五种实例可选,虽然配置相同,但是这些实例规格之间的价格差别是很大的。面对不同配置和类型的云服务器实例,有的新手用户往往因为不知道他们之间的区别,所以不知道如何选择。本文将针对常见的2核8G、4核16G、8核32G配置,深入剖析阿里云服务器中的经济型e、通用算力型u1、通用型g7及通用型g8y实例,以供大家参考和选择。
|
21天前
|
Ubuntu 网络协议
在Ubuntu 18.04服务器上配置双网口以接入互联网
总结一下,配置双网口在Ubuntu 18.04服务器就像一场冒险游戏,你小心翼翼地从查看网络布局开始,铺设新线路,最后得到了通往互联网的双重通道。祝你在网络世界的冒险旅程中更上一层楼!
57 11
|
21天前
|
存储 弹性计算 固态存储
阿里云服务器配置怎么选择?根据用户类型及使用场景配置推荐
如何选择阿里云服务器配置?2025年全解析!个人用户可选68元/年的轻量应用服务器(2核2G、200M带宽),企业用户推荐199元/年的ECS通用算力型u1实例(2核4G、5M带宽)。针对不同需求,还有内存型、计算型、高主频型及GPU服务器等多规格实例。带宽选择需根据访问量,小流量应用3M即可,高流量建议10M起步。存储方面,系统盘40GB够用,数据盘按需选择ESSD或SSD云盘,确保I/O性能满足业务需求。阿小云为你整理最新攻略,助你高效选型!
|
21天前
|
存储 弹性计算 人工智能
阿里云服务器2核8G/4核16G/8核32G配置热门实例规格对比与选购指南
如果我们是计划购买2核8G/4核16G/8核32G配置的阿里云服务器,在阿里云活动中一般会有经济型e、通用算力型u1、通用型g7、通用型g8i和通用型g8y几种常见的实例规格可选,尽管这些实例在配置上相似,但它们在性能、价格以及适用场景上存在显著差异。本文将深入解析这些实例规格的性能特点、价格差异及适用场景,为用户在阿里云服务器购买时提供详实的参考依据。
|
6天前
|
存储 缓存 弹性计算
阿里云经济型e实例云服务器评测:企业官网搭建的性价比之选
阿里云服务器经济型e实例可以用来搭建企业网站吗?云服务器作为搭建企业官网的基础设施,其性能、稳定性、成本等因素直接影响着官网的运营效果。阿里云经济型e实例云服务器作为一款性价比较高的产品,备受用户关注。许多企业在选择云服务器搭建官网时,都会将其纳入考虑范围。本文将详细探讨阿里云经济型e实例云服务器的特点、性能表现、稳定性与可靠性,以及成本考量,最终解答是否适合用它来搭建企业官网。
|
1月前
|
存储 缓存 网络协议
阿里云特惠云服务器99元与199元配置与性能和适用场景解析:高性价比之选
2025年,阿里云长效特惠活动继续推出两款极具吸引力的特惠云服务器套餐:99元1年的经济型e实例2核2G云服务器和199元1年的通用算力型u1实例2核4G云服务器。这两款云服务器不仅价格亲民,而且性能稳定可靠,为入门级用户和普通企业级用户提供了理想的选择。本文将对这两款云服务器进行深度剖析,包括配置介绍、实例规格、使用场景、性能表现以及购买策略等方面,帮助用户更好地了解这两款云服务器,以供参考和选择。
|
1月前
|
域名解析 人工智能 弹性计算
DeepSeek服务器繁忙解决方法:使用阿里云一键部署DeepSeek个人网站!
通过阿里云一键部署DeepSeek个人网站,解决服务器繁忙问题。学生用户可领取300元代金券实现0成本部署,普通用户则可用99元/年的服务器。教程涵盖从选择套餐、设置密码到获取百炼API-KEY的全流程,助您快速搭建专属大模型主页,体验DeepSeek、Qwen-max、Llama等多款模型,无需代码,最快5分钟完成部署。支持绑定个人域名,共享亲友使用,日均成本仅约1元。
157 10

推荐镜像

更多
下一篇
oss创建bucket