静态Web服务器搭建

news2024/11/24 4:35:44

文章目录

  • 一,安装Apache软件
    • (一)Apache软件安装
    • (二)Apache软件管理
    • (三)Apache软件基本设置
    • (四)测试Apache服务器
  • 二,Apache服务器的配置文件
    • (一)Apache的配置文件详述
    • (二)httpd.conf中常用的配置指令
    • (三)配置文件格式检查
    • (四)使用默认根目录作为网站目录发布网站
    • (五)使用指定目录作来发布网站
  • 三,配置目录访问控制
    • (一)目录访问控制的概念
    • (二)目录访问控制的配置格式
    • (三)常见访问控制指令
  • 四,配置虚拟目录
    • (一)虚拟目录的概念
    • (二)添加虚拟目录的方法
    • (三)添加虚拟目录的示例
  • 五,页面访问身份认证
    • (一)设置身份认证的过程
    • (二)创建用户口令数据库
    • (三)创建用户组
    • (四)认证与授权配置
  • 六,配置虚拟主机
    • (一)虚拟主机概述
    • (二)基于端口的虚拟主机配置
    • (三)基于多IP地址的虚拟主机配置
    • (四)基于域名的虚拟主机配置


一,安装Apache软件

在这里插入图片描述

(一)Apache软件安装

采用yum命令方式

执行命令:yum -y install httpdyum -y group install “基本网页服务器”

在这里插入图片描述

(二)Apache软件管理

  • 启动httpd服务
    systemctl {start | stop | status | restart | reload} httpd

  • 设置开机自启
    systemctl {enable | disable} httpd

  • 重新加载配置文件
    apachectl {start | stop | status | restart}
    apachectl graceful

  • 在防火墙放行httpd服务(前提:启动防火墙)
    firewall-cmd --add-service=http # 临时放行
    firewall-cmd --permanent --add-service=http # 放行http服务
    firewall-cmd --permanent --add-port=80/tcp # 放行80端口
    firewall-cmd --reload # 永久放行http服务

  • 关闭SElinux安全增强功能
    setenforce 0

(三)Apache软件基本设置

  • 在RHEL/CentOS中,Apache httpd服务器包含了基本的应用设置,不需要额外的配置即可使用。

  • 默认网站根目录:/var/www/html

  • 如果默认网站没有index.html文件,则显示/usr/share/httpd/noindex/index.html文件,此项目由/etc/httpd/conf.d/welcome.conf来确定。

  • Apache所有运行状态设定,都是由配置文件实现的。

(四)测试Apache服务器

  • 从客户端验证Apache服务器是否正常运行
    在地址栏中输入http://<服务器的IP地址> 将打开缺省主页。
    在这里插入图片描述

在地址栏中输入http:// <服务器的IP地址>/manual 将打开Apache的帮助手册页面。

二,Apache服务器的配置文件

(一)Apache的配置文件详述

  • Apache服务器程序的配置文件包含在一下三个目录中:
 /etc/httpd/conf;
/etc/httpd/conf.d;
/etc/httpd/conf.modules.d。

在这里插入图片描述

/etc/httpd/conf/httpd.conf :           #Apache的主配置文件

在主配置文件httpd.conf中,通过如下指令将外部配置文件的配置指令导入进来:

IncludeOptional conf.d/*.conf
Include conf.modules.d/*.conf.

在这里插入图片描述
在配置文件中使用“容器”概念来容纳诸如“目录”、“虚拟主机”、“文件”、“模块”等内容,以便对他们来进行设置。

<容器名称>
	配置的内容
</容器名称>

配置文件中包含大量的httpd程序可以理解的配置指令。
配置文件的内容可以归纳三个部分:全局配置、主服务配置、虚拟机主机配置。
如果想要了解配置文件的详细信息,可以参考Apache官网:https://httpd.apache.org/docs/
在这里插入图片描述

(二)httpd.conf中常用的配置指令

  1. 全局环境配置命令
    ServerRoot指令:用于定于httpd配置文件、错误文件、日志文件的根目录,后续出现的相对路径都是以此路径作为根目录。默认值是“/etc/httpd”(不能以/结尾),一般不需要进行修改。
    在这里插入图片描述
    Timeout指令:超时设置,用于设置接收和发送数据时的超时时限,单位是秒,有些配置文件中没有该指令,我们可以自己添加。格式为:Timeout 100;
    在这里插入图片描述
    Listen指令:设置Apache服务器将监听服务器所有IP地址的80端口,可以指定监听特定IP地址和特定的端口;例如:Listen 12.34.56.78:80
    在这里插入图片描述

  2. 主服务器配置命令
    DocumentRoot指令:指定网站的根目录,路径使用绝对路径,默认是”/var/www/html”
    在这里插入图片描述DirectoryIndex指令:义主页文件,当访问到网站目录时,如果有定义的主页文件,网站会自动访问,默认是“DirectoryIndex index.html”
    在这里插入图片描述
    ServerAdmin指令:指定主服务器的管理员邮箱地址,仅为网站显示信息 ,默认为“root@localhost” 。
    在这里插入图片描述
    ServerName指令:指定主服务器的名称,仅为网站显示信息 ,默认为“www.example.com:80” 。
    在这里插入图片描述

(三)配置文件格式检查

Apache配置文件修改完成后,可以使用Apache自带配置文件检查命令,检查配置文件修改后的语法结构是否正确。

# apachectl configtest

在这里插入图片描述

(四)使用默认根目录作为网站目录发布网站

可以采用如下步骤使用默认根目录作为网站目录来发布网站:

  • 将网站的所有内容复制到/var/www/html目录下;
  • 将网站的首页名称添加到DirectoryIndex指令的第一项。

(五)使用指定目录作来发布网站

可以采用如下步骤使用指定目录作来发布网站:

  • 在服务器上创建Web网站的根目录,例如“/web”
  • 将网站的文件夹复制到网站根目录下;
  • 打开/etc/httpd/conf/httpd.conf文件,按如下步骤修改,并保存;
    • 修改 DocumentRoot “/var/www/html”DocumentRoot “/web”
    • 设置网站根目录的权限:修改 <Directory “/var/www/html”>…</Directory><Directory “/web”>…</Directory>
    • 将网站的首页名称添加到 DirectoryIndex指令的第一项;
  • 重启httpd进程。

三,配置目录访问控制

(一)目录访问控制的概念

  • 目录访问控制是指对文件系统中的目录进行权限设定:可以指定哪一些客户端可以访问目录,哪些不行,还能够指定客户端在该目录中可以做哪些操作,如列出目录内容、执行等操作;
  • Apache可以在主配置文件httpd.conf中配置目录访问控制;
  • Apache还允许在每个目录下放置一个.htaccess文件,通过它来控制这个目录的访问权限,可以替换httpd.conf中的默认设置。

(二)目录访问控制的配置格式

<Directory “目录路径”>
  	[访问控制指令]
</Directory>
<Directory "/var/www/html">          #网站容器开始标识
    Options Indexes FollowSymLinks  #找不到主页时,以目录的方式呈现,    
	AllowOverride  None                       #none不使用 .htaccess控制,all允许
    Require all granted                       #granted表示运行所有访问,denied表示拒绝所有访问
</Directory>                                   #容器结束

(三)常见访问控制指令

  • Options (目录参数):设置目录内能够让Apache进行的动作,即是针对apache的程序的权限设定。主要的参数值有:

    • Indexes:如果在此目录下找不到主页(预设为 index.html)时, 就显示整个目录下的文件名。
    • FollowSymLinks:表示在该目录中,服务器将跟踪符号链接。
    • ExecCGI:让此目录具有执行CGI程序的权限。例如,邮件服务OpenWebMail 使用了很多的 perl 的程序,你要让OpenWebMail 可以执行,就得要在该程序所在目录拥有 ExecCGI 的权限。
  • AllowOverride (允许的覆写参数功能):表示是否允许额外配置文件.htaccess 对主配置文件进行覆盖。
    可以在httpd.conf 内设定好所有的权限,不过如此一来若使用者自己的个人网页想要修改权限时将会对管理员造成困扰。因此 Apache 默认可以让用户以目录底下的.htaccess 档案内覆写 内的某些功能参数。

  • AllowOverride (允许的覆写参数功能)常见的选项有:
    (1)ALL:全部的权限均可被覆写;
    (2)AuthConfig:仅有网页认证 (账号密码) 可覆写;
    (3)Indexes:仅允许 Indexes 方面的覆写;
    (4)Limits:允许使用者利用 Allow, Deny 与 Order 管理可浏览的权限;
    (5)None:不可覆写,亦即让 .htaccess 档案失效!

  • Require (能否登入浏览的权限):决定此目录是否可被用户 浏览的权限设定,能否被浏览主要有如下判定的方式。Apache2.4版本,使用Require命令取代Order来进行权限设置,但也兼容Order。
    (1)Require all granted #允许所有
    (2)Require all denied #拒绝所有
    (3)Require ip 192.100 192.168.160 192.168.100.5 #允许特定IP或IP段,多个IP或IP段间使用空格分隔,拒绝其他

四,配置虚拟目录

(一)虚拟目录的概念

虚拟目录就是将其他目录以映射的方式虚拟到网站的根目录下,这样,一个网站的根目录实质上就可以包括很多不同盘符、不同路径的目录,而不会受到所在盘空间的限制了。

(二)添加虚拟目录的方法

使用Alias指令为网站添加虚拟目录:
Alias 虚拟目录 “实际目录”
说明:
1、虚拟目录的根目录是DocumentRoot指令指定的目录;
2、设置好虚拟目录后,还要定义虚拟目录对应于实际目录的访问授权。
3、定义了虚拟目录若无法访问,则为SElinux问题,使用setenforce 0命令临关闭SElinux防火墙即可使用。

(三)添加虚拟目录的示例

在这里插入图片描述在这里插入图片描述

五,页面访问身份认证

(一)设置身份认证的过程

认证是指用户通过浏览器访问某一受保护资源时,提供正确的用户名和密码才能访问;设置身份认证的过程为:

  1. 通过用户名和口令来验证对Web页面的访问;
  2. 创建口令访问需要首先创建用户和口令数据库;
  3. 在需要口令保护的目录容器中添加验证指令。

(二)创建用户口令数据库

使用htpasswd命令创建用户口令数据库文件:

#htpasswd -c  /etc/httpd/webpass 用户名  //-c首次创建时使用,指定创建数据库文件 
#htpasswd  /etc/httpd/webpass 用户名

在这里插入图片描述

(三)创建用户组

建立/etc/httpd/webgroup(其中/etc/httpd/webgroup为组文件名),按如下方式添加行。
组名称:用户名1 用户名2
例如:webgroup : user1 user2

(四)认证与授权配置

  • 认证指令包括:

    • AuthName<领域名称> //定义认证的名称
    • AuthType<Basic|Digest> //定义使用Basic或Digest认证方式
    • AuthGroupFile<文件名> //指定认证组文件的位置
    • AuthUserFile<文件名> //指定认证密码文件的位置
  • 上述配置指令要放在受保护的目录容器中;

  • 为用户或者组进行授权的指令是Require,具有3种授权格式:

    • Require user <用户名> [用户名] //授权给指定的一个或者多个用户
    • Require group <组名> [组名] //授权给指定的一个或者多个用户组
    • Require valid-user //授权给认证密码文件中的所有用户

在这里插入图片描述

六,配置虚拟主机

(一)虚拟主机概述

  • 虚拟主机是指在一个主机上运行多个Web网站,每个网站均有自己独立的域名,通过不同的域名可以访问不同的网站。虽然多个Web网站部署在同一台计算机内,但是对于用户是透明的。用户在访问时,只需要在浏览器中输入相应的域名即可。

  • 虚拟主机主要分为:基于端口的虚拟主机、基于IP地址的虚拟主机以及基于域名的虚拟主机。

  • 建立虚拟主机通过修改配置文件来实现:

    • 可以把虚拟主机配置内容直接写入主配置文件(早期Apache版本)
    • 在conf.d目录下建立独立的配置文件(vhost.conf)(建议使用方法)
    • 虚拟主机配置文件名称自定,但必须以”.conf”结尾。
      在这里插入图片描述
  • 虚拟主机配置容器配置:

    • 使用VirtualHost作为容器
    • 至少要包含以下内容:
      1. ServerName //指定主机名称
      2. DocumentRoot //指定主机根目录
      3. <Directory “…”> //主机根目录权限设置
      4. DirectoryIndex //指定网站默认主页文件
  • 虚拟主机配置容器:

<VirtualHost   192.168.137.5 >                   //虚拟主机容器开始      
	ServerName  exam.excesoft.com                //指定主机名称    
	DocumentRoot    /var/www/html/exam           //指定主机根目录  
	<Directory/var/www/html/exam”>            //主机根目录权限设置  
    	Options  Indexes  FollowSymLinks   
    	AllowOverride None          
     	Require all granted
	</Directory>
	DirectoryIndex index.html                    //虚拟主机网站默认主页文件 
</VirtualHost>                                   //虚拟主机容器结束  
  • 虚拟主机配置准备工作
    • 准备好多个网站内容信息
    • 准备根据虚拟主机类型准备好端口号、IP地址以及域名。

(二)基于端口的虚拟主机配置

1、修改虚拟主机配置文件
在这里插入图片描述
在这里插入图片描述2、修改主配置文件“httpd.conf”,增加对两个端口的监听
在这里插入图片描述

3、检查配置文件语法正确性,并重启apache服务

#apachectl configtest                                       //检查配置文件正确性
# systemctl restart httpd                                   //启动httpd服务

在这里插入图片描述
4、设置防火墙,放行两个端口

firewall-cmd --list-all                              #查看当前防火墙设置信息
firewall-cmd --permanent --add-service=http          #放行http服务  
firewall-cmd --permanent --add-port=8080 /tcp        #放行8080端口
firewall-cmd --permanent --add-port=8088 /tcp        #放行8088端口
firewall-cmd --reload

(三)基于多IP地址的虚拟主机配置

1、为虚拟机添加网卡并查看IP地址
在这里插入图片描述
在这里插入图片描述
2、修改虚拟主机配置文件
在这里插入图片描述
在这里插入图片描述
3、修改主配置文件“httpd.conf”,增加对两个IP的监听
在这里插入图片描述
4、检查配置文件语法正确性,并重启apache服务

#apachectl configtest                                       //检查配置文件正确性
# systemctl restart httpd                                   //启动httpd服务

在这里插入图片描述5、设置防火墙,放行两个端口

firewall-cmd --list-all                                 #查看当前防火墙设置信息
firewall-cmd --permanent --add-service=http             #放行http服务  
firewall-cmd --reload

(四)基于域名的虚拟主机配置

1、修改虚拟主机配置文件
在这里插入图片描述
在这里插入图片描述
2、修改主配置文件“httpd.conf”,增加对IP的端口监听
在这里插入图片描述
3、检查配置文件语法正确性,并重启apache服务

#apachectl configtest                                       //检查配置文件正确性
# systemctl restart httpd                                   //启动httpd服务

在这里插入图片描述
4、设置防火墙,放行两个端口

firewall-cmd --list-all                                 #查看当前防火墙设置信息
firewall-cmd --permanent --add-service=http             #放行http服务  
        firewall-cmd --reload

5、在实体机上配置域名解析文件
在“C:\Windows\System32\drivers\etc”目录下找到“hosts”文件,添加域名解析。

在这里插入图片描述

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

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

相关文章

【C++】结构体 - 定义和使用,结构体数组,结构体指针,结构体嵌套结构体,结构体做函数参数,结构体 const

文章目录 1. 定义和使用2. 结构体数组3. 结构体指针4. 结构体嵌套结构体5. 结构体做函数参数6. 结构体 const 1. 定义和使用 结构体属于用户自定义的数据类型&#xff0c;允许用户存储不同的数据类型。 struct 结构体 {结构体成员列表}; 通过结构体创建变量的方法有三种&…

2023,智能硬件的AIGC“又一春”

​ 文|智能相对论 作者|佘凯文 消费电子产品风光不再&#xff0c;特别是自去年以来&#xff0c;电子消费市场经历了一整年的寒潮袭击&#xff0c;智能手机等产品达到10年消费谷底&#xff0c;PC出货量整体下降16%&#xff0c;不仅如此&#xff0c;包括平板、可穿戴设备也一改…

URP Shader FrameBuffer Fetch Mali Crash

1&#xff09;URP Shader FrameBuffer Fetch Mali Crash ​2&#xff09;Unity模型Lightmap UV相关的疑问 3&#xff09;动画上下半身融合问题 4&#xff09;AnimatorControllerPlayable.PrepareFrame函数在什么情况下调用 这是第338篇UWA技术知识分享的推送&#xff0c;精选了…

如何将 HTML 字符串转换成 DOM 对象:用 DOMParser

如何将 HTML 字符串转换成 DOM 对象&#xff1a;用 DOMParser 一、问题描述 有的时候我们需要处理一些 HTML 字符串&#xff0c;比如我需要从下方 HTML 字符串中提取每个 <a> 标签的内容和属性。 <pre><a href"cc1245.jpg">cc1245.jpg</a>…

将ipa文件上架苹果应用商店详细教程

使用windows电脑打包好uniapp的ios应用之后&#xff0c;还有一个麻烦事&#xff0c;就是需要将这个打包好的ipa格式的文件&#xff0c;上架到苹果的应用商店。用户才能安装。 而苹果提供的上传工具&#xff0c;比如xcode或transports&#xff0c;只能安装在mac电脑&#xff0c…

国产AIGC大模型汇总

“ 随着ChatGPT和GPT-4的出现&#xff0c;直接引爆了全球的AIGC大模型市场&#xff01;为了赶上这一波热潮&#xff0c;国内的大厂和创业公司也纷纷内卷起来&#xff0c;相继发布了自己的大模型。但是到目前为止&#xff0c;没有一个大模型能与ChatGPT相提并论&#xff0c;更比…

【算法系列之二叉树III】leetcode236. 二叉树的最近公共祖先

617.合并二叉树 力扣题目链接 给你两棵二叉树&#xff1a; root1 和 root2 。 想象一下&#xff0c;当你将其中一棵覆盖到另一棵之上时&#xff0c;两棵树上的一些节点将会重叠&#xff08;而另一些不会&#xff09;。你需要将这两棵树合并成一棵新二叉树。合并的规则是&…

MySQL 三万字精华总结 + 面试100 问,和面试官扯皮绰绰有余

MySQL 三万字精华总结 面试100 问&#xff0c;和面试官扯皮绰绰有余 写在之前&#xff1a;不建议那种上来就是各种面试题罗列&#xff0c;然后背书式的去记忆&#xff0c;对技术的提升帮助很小&#xff0c;对正经面试也没什么帮助&#xff0c;有点东西的面试官深挖下就懵逼了。…

linuxOPS基础_linux文本文件查看

vi/vim vim文档编辑操作太多了,可以看这篇单独介绍vim的文章>https://blog.csdn.net/weixin_44368963/article/details/130963920 cat查看文件 命令&#xff1a;cat 作用&#xff1a;查看文件内容 语法&#xff1a;#cat 文件名称 ​ #cat 文件1 文件2 > 文件3 **特别注…

如何利用CiteSpace快速锁定领域内最新研究热点并制作精美的可视化专题图?

【基于Citespace和vosviewer文献计量学相关论文 】 ​ 01 文献计量学方法与应用 1. 文献计量学方法基本介绍 2. 与其他综述方法区别联系 3. 各学科领域应用趋势近况 4. 主流分析软件优缺点对比 5. 经典高分10SCI思路复盘 6. 软件安装与Java环境配置 02 主题确定、数据检…

Vue+springboot校园跳蚤二手市场管理系统

摘 要 本毕业设计的内容是设计并且实现一个基于Springboot框架的校园跳蚤市场管理系统。它是在Windows下&#xff0c;以MYSQL为数据库开发平台&#xff0c;Tomcat网络信息服务作为应用服务器。校园跳蚤市场管理系统的功能已基本实现&#xff0c;主要包括用户、卖家、商品分类…

中国存储竞争新格局:曙光掌舵分布式存储市场

近日&#xff0c;赛迪顾问发布了《中国分布式存储市场研究报告&#xff08;2023&#xff09;》。 作为数字经济的底座&#xff0c;数据存储的重要性日益凸显。 近年来&#xff0c;凭借高性能、高可靠性、高可扩展性等优势&#xff0c;基于分布式架构的分布式存储迎来了蓬勃发…

基于SpringBoot+vue的火车订票管理系统设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架下…

动静态库的区别

(5条消息) linux-动态库制作与使用_云的小站的博客-CSDN博客 (5条消息) linux-静态库制作与使用_云的小站的博客-CSDN博客 目录 编译区别 使用不同编译的可执行程序。 推荐使用动态链接 动态链接具有以下优缺点 编译区别 动态库&#xff1a;代码不加载到可执行程序中&am…

Java:Mybatis-Plus自动填充功能配置和使用

Mybatis-Plus可以实现字段自动填充功能 文档 https://baomidou.com/pages/4c6bcf/ 目录 需求数据库设置默认值通过代码的方式进行自动填充配置自动填充设置方式一设置方式二 测试依赖pom.xml 需求 我们需要自动填充的字段&#xff1a; 插入数据时自动填充&#xff1a;creat…

view的常用属性和方法介绍(arcgis for javascript)

ArcGIS for JavaScript中的视图&#xff08;view&#xff09;是一个地图实例类&#xff0c;用于管理地图的显示区域、符号和标注等。通过视图类&#xff0c;可以实现以下功能&#xff1a; 显示地图&#xff1a;将地图显示在Web页面上。 缩放&#xff1a;缩放视图到指定的级别。…

Benewake(北醒) 快速实现TF40与电脑通信操作说明

目录 一、前言二、工具准备1. TTL-USB 转接线2. TF403. 兆信直流电源4. 连接线5. PC&#xff1a;Windows 系统6. 上位机 WINCC_TF 三、 连接方式1. TTL-USB 转接线接口说明2. TF40 引脚功能及连接说明3. 连线图 四、TF40 与电脑通信操作说明1. 参数设置2.获取测距值3. 设置波特…

百度倾力出品|《神经网络机器翻译技术及产业应用》正式上线

随着经济社会的国际交流合作日益密切&#xff0c;人们迫切需要高质量、高效率的跨语言信息获取和传播工具。《神经网络机器翻译技术及产业应用》以产业需求为牵引&#xff0c;分析了新时期机器翻译的产业需求特点和挑战&#xff0c;介绍了神经网络翻译的基本理论、前沿技术以及…

10课程设计收尾及优秀作品展示答辩【FPGA模型机课程设计】

10课程设计收尾及优秀作品展示答辩【FPGA模型机课程设计】 前言说明推荐10课程设计收尾及优秀作品展示答辩安排 目录一、单周期CPU的设计过程1、基本的20条指令固定指令格式设计I 型指令设计J型指令设计lw sw指令设计 2、扩展的20条指令J型扩展指令设计乘法除法指令格式 3、实现…

阿里云推出工作学习 AI 助手“通义听悟”;谷歌发布 PaLM2;吴恩达推出了三门课

&#x1f989; AI新闻 &#x1f680; 阿里云推出工作学习 AI 助手“通义听悟” 摘要&#xff1a;阿里云峰会・粤港澳大湾区上&#xff0c;阿里云宣布推出最新产品“通义听悟”&#xff0c;该产品能用于会议讨论、教学培训、调研访谈、视频观看等场景&#xff0c;依托大模型&a…