Apache访问控制与虚拟主机

news2025/6/22 11:15:41

目录

一. Web服务简介

以下是一些 Web 服务的基本概念和特征

以下是一些主流的 Web 服务器

WEB 服务协议

二. Apache 服务的搭建与配置

2.1 Apache 介绍

2.2 Apache安装

2.3 Apache目录介绍

三. 访问控制 

四. 修改默认网站发布目录

 五. 虚拟主机

5.1 基于域名的虚拟主机

5.2 基于端口的虚拟主机

5.3 基于 IP 地址的虚拟主机


一. Web服务简介

Web 服务是一种基于网络的软件系统,它通过标准的网络协议(通常是 HTTP 或 HTTPS)提供服务。这些服务可以是静态的,如提供静态网页或文件,也可以是动态的,如处理用户请求并生成动态内容。

以下是一些 Web 服务的基本概念和特征

  1. HTTP 协议: Web 服务通常使用 HTTP(Hypertext Transfer Protocol)或其安全版本 HTTPS(HTTP Secure)作为通信协议。HTTP 定义了客户端和服务器之间的请求和响应格式,以及状态码和头部信息等规范。

  2. RESTful API: REST(Representational State Transfer)是一种基于 HTTP 协议设计的软件架构风格,用于创建可扩展的 Web 服务。RESTful API 通过定义资源、HTTP 方法和状态码来实现对资源的操作,如 GET(获取)、POST(创建)、PUT(更新)和 DELETE(删除)等。

  3. SOAP: SOAP(Simple Object Access Protocol)是另一种用于构建 Web 服务的协议,它使用 XML 格式来定义消息结构和通信协议。SOAP 比较复杂,通常用于企业级应用和基于 XML 的数据交换。

  4. Web 服务器: Web 服务运行在 Web 服务器上,它可以是专用的服务器软件(如 Apache、Nginx、Microsoft IIS 等),也可以是集成在应用程序中的服务器组件(如 Node.js、Django、Flask 等)。

  5. 动态内容生成: Web 服务可以根据用户请求生成动态内容,通常使用服务器端脚本语言(如 PHP、Python、Ruby 等)处理请求并生成 HTML、JSON 或 XML 等格式的响应。

  6. 扩展性和可伸缩性: 良好设计的 Web 服务具有良好的扩展性和可伸缩性,能够处理大量的并发请求并在需要时进行水平或垂直扩展。

Web 服务在互联网应用开发中起着至关重要的作用,它为用户提供了访问和交互的渠道,并为开发人员提供了构建各种类型应用的基础设施。

以下是一些主流的 Web 服务器

  1. Apache HTTP Server: 通常简称为 Apache,是最流行的开源 Web 服务器软件之一。它具有稳定性高、功能强大、模块化设计等特点,支持多种操作系统,如 Linux、Unix、Windows 等。

  2. Nginx: Nginx 是一款高性能的开源 Web 服务器和反向代理服务器。它的设计目标是解决 C10k 问题(同时连接数超过 10000),具有低内存消耗、高并发处理能力、灵活的配置等优点,被广泛用于构建高性能的 Web 服务。

  3. Microsoft IIS: Internet Information Services(IIS)是由 Microsoft 开发的 Web 服务器软件,用于在 Windows 环境下运行。它集成在 Windows Server 中,支持 ASP.NET、PHP、Node.js 等多种 Web 技术,并提供了强大的管理工具和安全功能。

  4. LiteSpeed Web Server: LiteSpeed 是一款高性能的商业 Web 服务器软件,与 Apache 兼容,但通常比 Apache 更快更稳定。它支持 Apache 的配置文件和模块,提供了缓存、反向代理、负载均衡等功能。

  5. Caddy: Caddy 是一款现代化的开源 Web 服务器,具有自动 HTTPS 部署、HTTP/2 支持、简单的配置等特点。它使用 Go 语言编写,易于部署和管理,适用于各种类型的 Web 应用。

  6. Tomcat: Apache Tomcat 是一个开源的 Java Servlet 容器,用于运行 Java Web 应用。它是 Apache 软件基金会的一个项目,支持 Java Servlet、JavaServer Pages(JSP)等技术,并且可以与 Apache HTTP Server 或 Nginx 结合使用。

这些 Web 服务器各有特点,选择适合自己需求的服务器取决于项目的要求、性能需求、支持的技术栈以及个人偏好等因素。

WEB 服务协议

Web 服务协议是指在 Web 服务中用于通信和数据交换的协议。下面是一些常见的 Web 服务协议:

  1. HTTP(Hypertext Transfer Protocol): HTTP 是 Web 服务中最常用的协议之一,它定义了客户端和服务器之间的通信规范。HTTP 使用请求-响应模型,客户端向服务器发送请求,并接收服务器返回的响应。HTTP 通常用于传输 HTML 页面、图片、样式表等静态资源,以及 JSON 或 XML 格式的数据。

  2. HTTPS(HTTP Secure): HTTPS 是在 HTTP 协议基础上添加了加密和身份验证机制的安全通信协议。它通过使用 SSL/TLS 协议对通信进行加密,保护用户数据的安全性和隐私。HTTPS 在互联网上广泛用于安全性要求较高的网站和应用。

  3. SOAP(Simple Object Access Protocol): SOAP 是一种基于 XML 的通信协议,用于在分布式环境中进行应用程序之间的通信。它定义了 XML 格式的消息结构和通信规范,支持复杂的数据类型和协议扩展。SOAP 主要用于构建企业级应用和 Web 服务。

  4. REST(Representational State Transfer): REST 是一种基于 HTTP 协议设计的软件架构风格,用于构建可扩展的 Web 服务。RESTful API 使用 HTTP 方法(如 GET、POST、PUT、DELETE 等)对资源进行操作,并通过 URI 来唯一标识资源。RESTful API 通常使用 JSON 或 XML 格式来表示资源和交换数据。

  5. GraphQL: GraphQL 是一种用于构建 API 的查询语言和运行时。与传统的 RESTful API 不同,GraphQL 允许客户端定义需要返回的数据结构,以减少网络请求次数和数据传输量。GraphQL 通常使用 HTTP 或 WebSocket 协议进行通信。

这些协议在不同的场景和需求中发挥着重要的作用,开发人员可以根据项目的需求和特点选择适合的协议来实现 Web 服务。

二. Apache 服务的搭建与配置

2.1 Apache 介绍

Apache 是一个开源的跨平台 Web 服务器软件,全称为 Apache HTTP Server。它是目前世界上最流行的 Web 服务器软件之一,由 Apache 软件基金会开发和维护。Apache 以其稳定性、可靠性、灵活性和强大的功能而闻名,被广泛用于搭建各种类型的网站和 Web 应用。

2.2 Apache安装

Apache的主程序名叫httpd

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum install -y httpd
[root@localhost ~# systemctl start httpd
[root@localhost ~]# netstat -lntp | grep 80 #查看apache端口
tcp6       0      0 :::80                   :::*                    LISTEN      2776/httpd

#端口80.可以改



启动
httpd -k start   或  systemctl start httpd
停止
httpd -k stop    或  systemctl stop httpd
重启
httpd -k restart 或  systemctl restart httpd
index.html:默认访问网站的主页名称
默认发布网站的目录:/var/www/html

2.3 Apache目录介绍

Apache的工作目录:
conf                    存储配置文件
conf.d                 存储配置子文件
logs                    存储日志 
modules             存储模块
run                      存储Pid文件,存放的pid号码。是主进程号

 认识主配置文件/etc/httpd/conf/httpd.conf 

ServerRoot "/etc/httpd"             #定义工作目录
Listen 80                           #监听端口
Listen 192.168.2.8:80 指定监听的本地网卡 可以修改
User apache    					    # 子进程的用户,有可能被人改称www账户
Group apache   						# 子进程的组
ServerAdmin root@localhost  		# 设置管理员邮件地址
DocumentRoot "/var/www/html"        # 发布网站的默认目录,想改改这里。
IncludeOptional conf.d/*.conf       # 包含conf.d目录下的所有*.conf配置文件

# 设置DocumentRoot指定目录的属性
<Directory "/var/www/html">   		# 网站容器开始标识
Options Indexes FollowSymLinks   	# 找不到主页时,链接到网站目录以外,如测试页面
AllowOverride None               	# 对网站设置特殊属性:none不设置特殊属性,all允许
Require all granted                 # granted表示允许所有人访问,denied表示拒绝所有人访问
</Directory>    					# 容器结束
DirectoryIndex index.html      		# 定义主页文件,会自动访问该文件。

三. 访问控制 

可以直接编辑apache主配置文件

 修改如下代码,进行特定的访问控制:

#1.允许所有IP访问
#默认情况下不用任何修改就是所有人可以访问
<RequireAll>
Require all granted
</RequireAll>

#2.拒绝所有IP访问
<RequireAll>
Require all deined
</RequireAll>

#3.拒绝特定IP访问
<RequireAll>
Require not ip 192.168.226.129
Require all granted
</RequireAll>


#4.允许特定IP访问
<RequireAll>
Require ip 192.168.226.129
</RequireAll>

四. 修改默认网站发布目录

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf

#在119行修改网站根目录为/www
DocumentRoot "/www"  

#在131行把这个也对应的修改为/www
<Directory "/www">

[root@localhost ~]# mkdir /www                                         #创建定义的网站发布目录
[root@localhost ~]# echo "这是新修改的网站根目录/www" > /www/index.html #创建测试页面
[root@localhost ~]# systemctl restart httpd                            #重启服务

 五. 虚拟主机

        虚拟主机是一种在单个物理服务器上托管多个域名或网站的技术。通过虚拟主机,可以在同一台服务器上运行多个独立的网站,并使它们彼此隔离,就像它们运行在不同的物理服务器上一样。这种技术可以最大程度地利用服务器资源,并提供更灵活和经济高效的解决方案。

5.1 基于域名的虚拟主机

[root@localhost ~]# cd /etc/httpd/conf.d/

#创建配置文件 
[root@localhost conf.d]# vim test.conf


#修改配置文件为如下内容
# 定义第一个虚拟主机,监听所有地址的80端口  
<VirtualHost *:80>  
  
    # 设置此虚拟主机的服务器名称为 www.ceshi.com  
    ServerName www.ceshi.com  
  
    # 设置此虚拟主机的文档根目录为 /var/www/ceshi  
    DocumentRoot /var/www/ceshi  
  
    # 配置对文档根目录的访问权限和指令覆盖  
    <Directory "/var/www/ceshi">  
        # 不允许 .htaccess 文件覆盖主配置文件中的指令  
        AllowOverride None  
        # 允许所有用户访问此目录  
        Require all granted  
    </Directory>  
  
# 结束第一个虚拟主机的配置  
</VirtualHost>  
  
# 定义第二个虚拟主机,监听所有地址的80端口  
<VirtualHost *:80>  
  
    # 设置此虚拟主机的服务器名称为 www.luzheng.com  
    ServerName www.luzheng.com  
  
    # 设置此虚拟主机的文档根目录为 /var/www/luzheng  
    DocumentRoot /var/www/luzheng  
  
    # 配置对文档根目录的访问权限和指令覆盖  
    <Directory "/var/www/luzheng">  
        # 不允许 .htaccess 文件覆盖主配置文件中的指令  
        AllowOverride None  
        # 允许所有用户访问此目录  
        Require all granted  
    </Directory>  
  
# 结束第二个虚拟主机的配置  
</VirtualHost>



#######################################################################

[root@qfedu.com conf.d]# mkdir /var/www/ceshi    
[root@qfedu.com conf.d]# mkdir /var/www/luzheng


 #创建测试页面
[root@localhost conf.d]# echo "这是个测试页面" > /var/www/ceshi/index.html
[root@localhost conf.d]# echo 'hello word!' > /var/www/luzheng/index.html
#重启服务
[root@localhost conf.d]# systemctl restart httpd

 配置好apache配置文件,最后就要去windows中配置下域名拉

在windows电脑的C:\Windows\System32\drivers\etc这个目录下有个hosts的配置文件新增IP和对应的域名即可,一般要用管理员身份才可以进行编辑修改这个hosts文件。注意你添加的时候要把IP修改成你的电脑的IP。

192.168.226.100 www.ceshi.com
192.168.226.100 www.luzheng.com

 注:如果配置都对的前提下打不开或者打开的不对,就用浏览器的无痕模式,或者切换浏览器尝试即可。

5.2 基于端口的虚拟主机

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf +43
  #添加监听端口 如下图

[root@localhost ~]# cd /etc/httpd/conf.d/

#创建配置文件 
[root@localhost conf.d]# vim test.conf

#修改配置文件为如下内容
<VirtualHost *:80>
    ServerName www.ceshi.com
    DocumentRoot /var/www/ceshi
    <Directory "/var/www/ceshi">
        AllowOverride All            # 允许 .htaccess 文件中的指令覆盖主配置文件中的指令
        Require all granted
    </Directory>
</VirtualHost>

<VirtualHost *:81>
    ServerName www.luzheng.com
    DocumentRoot /var/www/luzheng
    <Directory "/var/www/luzheng">
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>



[root@qfedu.com conf.d]# mkdir /var/www/ceshi    
[root@qfedu.com conf.d]# mkdir /var/www/luzheng


 #创建测试页面
[root@localhost conf.d]# echo "这是个测试页面" > /var/www/ceshi/index.html
[root@localhost conf.d]# echo 'hello word!' > /var/www/luzheng/index.html
#重启服务
[root@localhost conf.d]# systemctl restart httpd

5.3 基于 IP 地址的虚拟主机

使用ifconfig给一个网卡新增ip

ifconfig ens33:0 192.168.226.200
#这里的ens33:0是网络接口ens33的一个别名(也称为子接口)

#取消一个IP
ifconfig ens33:0 192.168.226.200 down

使用ip命令给一个网卡新增ip

ip a a 192.168.226.201/24 dev ens33
ip addr add 192.168.226.201/24 dev ens33 label ens33:1
#这里label ens33:0 是起得一个别名

#删除一个IP
ip addr del 192.168.226.201/24 dev ens33

[root@localhost ~]# vim /etc/httpd/conf.d/test.conf

<VirtualHost 192.168.226.200:80>
    ServerName www.ceshi.com
    DocumentRoot /var/www/ceshi
    <Directory "/var/www/ceshi">
        AllowOverride None           # 不允许 .htaccess 文件覆盖主配置文件中的指令
        Require all granted
    </Directory>
</VirtualHost>

<VirtualHost 192.168.226.201:81>
    ServerName www.luzheng.com
    DocumentRoot /var/www/luzheng
    <Directory "/var/www/luzheng">
        AllowOverride None               
        Require all granted
    </Directory>
</VirtualHost>


[root@localhost ~]# systemctl restart httpd

可以配置域名解析,也可以不用配域名解析

 如果用域名去访问,记得去windows中删除之前配置得域名,更新成新得IP,如图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1673501.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java入门——继承和多态(下)

抽象类 语法规则 在上一篇文章刚才的打印图形例子中, 我们发现, 父类 Shape 中的 draw 方法好像并没有什么实际工作, 主要的绘制图形都是由 Shape 的各种子类的 draw 方法来完成的. 像这种没有实际工作的方法, 我们可以把它设计成一个 抽象方法 包含抽象方法的类我们称为 抽象…

试试这四款高效AI论文写作工具和降重技术

在科研领域&#xff0c;AI写作工具如同新一代的科研利器&#xff0c;它们能够极大提高文献查阅、思路整理和表达优化的效率&#xff0c;本质上促进了科研工作的进步。AI写作工具不仅快速获取并整理海量信息&#xff0c;还帮助我们精确提炼中心思想&#xff0c;显著提升论文写作…

花趣短视频源码淘宝客系统全开源版带直播带货带自营商城流量主小游戏功能介绍

1、首页仿抖音短视频 &#xff0c;关注 &#xff0c;我的 本地 直播 可发布短视频 可录制上传 2、商城页面 广告位、淘口令识别、微信登录、淘宝登录、淘宝返佣、拼多多返佣、京东返佣、唯品会返佣、热销榜、聚划算、天猫超市、9.9包邮、品牌特卖、新人攻略 、小米有品、优惠加…

【JavaEE网络】HTTPS详解:从对称与非对称加密到证书认证

目录 HTTPSHTTPS 是什么“加密” 是什么HTTTPS 的工作过程引入对称加密引入非对称加密引入证书完整流程总结 HTTPS HTTPS 是什么 HTTPS 也是一个应用层协议. 是在 HTTP 协议的基础上引入了一个加密层. HTTP 协议内容都是按照文本的方式明文传输的. 这就导致在传输过程中出现…

openGemini v1.2.0版本正式发布,IoT 场景性能大幅提升!

在openGemini v1.2.0版本中&#xff0c;我们为您带来了一系列令人振奋的内核优化&#xff0c;将您的体验提升到新的高度&#xff0c;这包括 针对IoT场景的性能优化&#xff0c;查询效率有极大的提升。针对数据存储的优化&#xff0c;进一步节约磁盘空间&#xff0c;降低数据存…

MySQL基础指南:从入门到精通

MySQL基础指南&#xff1a;从入门到精通 MySQL是一个流行的开源关系型数据库管理系统&#xff0c;被广泛用于Web应用程序和服务器端开发。本文将从MySQL的基本概念开始&#xff0c;逐步介绍MySQL的安装、常用操作、数据类型、查询语句等内容&#xff0c;帮助你快速入门MySQL数…

雇佣 K 位工人的总代价

题目链接 雇佣 K 位工人的总代价 题目描述 注意点 costs[i]是雇佣第 i 位工人的代价每一轮雇佣后&#xff0c;剩余工人的下标可能会发生变化一位工人只能被选择一次如果剩余员工数目不足 candidates 人&#xff0c;那么下一轮雇佣他们中代价最小的一人如果有多位代价相同且最…

排序-堆排序(Heap Sort)

堆排序&#xff08;Heap Sort&#xff09;是一种基于比较的排序算法&#xff0c;它利用了完全二叉树的特性&#xff0c;将待排序的序列构造成一个大顶堆&#xff08;每个父节点的值都大于或等于其子节点的值&#xff09;或小顶堆&#xff08;每个父节点的值都小于或等于其子节点…

哪个品牌led灯好?五大好用护眼台灯推荐

哪个品牌led灯好&#xff1f;目前LED护眼台灯当中做得比较好的有明基、松下、书客等品牌。在如今LED灯市场的海洋中&#xff0c;选择一款可靠的护眼台灯变得愈发重要。然而&#xff0c;众多品牌和产品的涌现也让消费者面临着选择困难。为了帮助大家找到最合适的LED台灯&#xf…

【亿事君】1688专业级知识库-阿里巴巴诚信通运营必修课程

01 课程介绍 课程来自亿事君老师的1688专业级知识库/白皮书/全攻略/阿里巴巴诚信通运营必修课程&#xff0c;价值1588元。这是一门系统的学习运营课程&#xff0c;干货满满&#xff0c;诚意十足。主要内容包括&#xff1a;基础、权重、活动玩法、付费流量玩法等&#xff0c;运…

中国196个城市边界

中国196个城市的城市边界形状文件是通过对Li等人&#xff08;2018&#xff09;的输出进行处理和过滤生成的。根据全球人工不可渗透区域 &#xff08;GAIA&#xff09; 数据绘制全球城市边界。 城市建成区边界是城市研究中的一个重要指标&#xff0c;在很多城市研究中都会涉及到…

一键同步用户信息和组织架构,简化用户管理,可道云teamOS插件化集成LDAP/AD的实战应用

随着企业规模的扩大和全球化布局的加深&#xff0c;管理分散在全球各地的员工和用户信息成为了企业IT部门的一大挑战&#xff0c;传统的手动添加用户和管理权限的方式已经无法满足需求。 有没有能自动同步用户信息和组织架构的企业网盘呢&#xff1f; teamOS插件化集成LDAP/AD…

CorelDRAW2024新特性全解析!

CorelDRAW2024是一款备受赞誉的图形设计软件&#xff0c;它以其强大的功能和用户友好性赢得了全球数百万设计师的青睐。该软件提供了丰富的绘图、排版、图像处理、矢量编辑以及网页设计工具&#xff0c;无论是初学者还是专业设计师&#xff0c;都能在这款软件中找到满足自己需求…

升级版ComfyUI InstantID 换脸:FaceDetailer + InstantID + IP-Adapter

在使用ComfyUI的InstantID进行人脸替换时&#xff0c;一个常见问题是该工具倾向于保留原始参考图的构图&#xff0c;即使用户的提示词与之不符。 例如&#xff0c;即使用户提供的是大头照并请求生成全身照&#xff0c;结果仍是大头照&#xff0c;没有显示出用户所期望的构图。…

JavaScript不仅有变量声明,还有变量提升

起因&#xff1a;&#x1f447; 一道面试题 最近&#xff0c;一位朋友参加面试时&#xff0c;遇到了这样一道笔试题&#xff0c;引起了我的兴趣&#xff1a; var foo 1; function fn() {foo 3;return;function foo() {// ...} } fn(); console.log(foo);这个例子中包含了变…

HQChart使用教程98-右键菜单2.0使用介绍

HQChart使用教程98-右键菜单2.0使用介绍 内置右键菜单启用右键菜单定制右键菜单内容1. 注册内置右键菜单创建回调事件2. 修改内置菜单的显示内容回调函数格式菜单数据结构示例 3. 注册菜单项点击事件回调 右键事件完整示例HQChart代码地址 内置右键菜单 HQChart h5版本内置提供…

Python-VBA函数之旅-tuple函数

目录 一、tuple函数的常见应用场景 二、tuple函数使用注意事项 三、如何用好tuple函数&#xff1f; 1、tuple函数&#xff1a; 1-1、Python&#xff1a; 1-2、VBA&#xff1a; 2、推荐阅读&#xff1a; 个人主页&#xff1a; https://myelsa1024.blog.csdn.net/ 一、tu…

U盘打不开提示格式化怎么办?(含数据恢复及U盘修复教程)

引言&#xff1a; 随着数字化时代的发展&#xff0c;U盘已成为我们日常生活和工作中不可或缺的数据存储工具。然而&#xff0c;有时我们可能会遇到U盘突然无法打开&#xff0c;并提示需要格式化的问题。这不仅会打乱我们的工作节奏&#xff0c;还可能会导致重要数据丢失。本文…

环保访谈|聚英环保:以创新科技引领工业环保

近期&#xff0c;中联环保圈希姐对浙江聚英环保科技有限公司负责人王江进行了专访&#xff0c;就公司的发展、核心产品以及合作客户等方面进行了深入交流。 浙江聚英环保科技有限公司成立于2012年&#xff0c;总占地面积超过3万平方米&#xff0c;拥有标准化的生产车间和先进的…

KNIME 报告扩展

文档对应的 KNIME AP 版本为 5.2 介绍 本指南介绍了 KNIME 报告扩展&#xff0c;并展示了如何创建简单和高级报告。 本指南更新于 2024/05/13&#xff0c;最新版请访问指北君网站 https://havef.fun/knime-cn/knime-doc/ KNIME 报告扩展允许您根据工作流程的结果创建静态报告。…