Linux——web服务配置

一、HTTP概念

HTTP请求报文:客户端发送给服务器的消息,用于请求特定资源或执行特定操作。HTTP请求报文由 请求行、请求头部和请求正文三部分组成。

请求方法: HTTP 请求方法是指客户端与服务器通信时,客户端所请求执行的动作。常见的 HTTP 请求方法包括:
GET :请求获取指定资源的表示形式。使用 GET 方法,客户端请求服务器发送某个资源。
POST :向指定资源提交数据,用于处理表单提交、文件上传等操作。
PUT :向指定资源位置上传其最新内容,用于更新资源。
DELETE :请求服务器删除指定资源。
HEAD :请求获取与实体相对应的头部信息,用于获取资源的元数据。
OPTIONS :请求查询服务器支持的 HTTP 方法。
TRACE :请求服务器回显收到的请求消息,用于测试或诊断。
HTTP 响应报文:服务器发送给客户端的消息,用于回复客户端的请求。 HTTP 响应报文由状态行、响应头部和响应正文三部分组成。
响应状态码 : HTTP 响应状态码是服务器向客户端返回的 3 位数字,用于表示对请求的处理结果。常见的 HTTP 响应状态码包括:
200 OK :请求成功。
301 Moved Permanently :永久重定向,请求的资源已经被分配了新的 URL 400 Bad Request :客户端发送的请求有错误,服务器无法理解。
401 Unauthorized :请求要求身份验证,需要提供有效的用户名和密码。
404 Not Found :服务器未找到请求的资源。
500 Internal Server Error :服务器内部错误,无法完成请求。
503 Service Unavailable :服务器暂时无法处理请求,通常是由于维护或过载。
4代表客户端、5代表服务端的错误

二、安装

[root@webserver ~]# yum -y install httpd
[root@webserver ~]# systemctl enable --now httpd  #启动并开机自启动
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service →
/usr/lib/systemd/system/httpd.service.

[root@webserver ~]# echo test for apache httpd > /var/www/html/index.html
[root@webserver ~]# cat /var/www/html/index.html
test for apache httpd
[root@webserver ~]# curl 127.0.0.1
test for apache httpd
[root@webserver ~]# curl -I 127.0.0.1
HTTP/1.1 200 OK //状态码为 200 说明服务端
//为客户端的访问提供了响应代码为200的
响应
Date: Sun, 21 Apr 2024 08:49:55 GMT
Server: Apache/2.4.37 (Red Hat Enterprise Linux)
Last-Modified: Sun, 21 Apr 2024 08:49:23 GMT
ETag: "16-6169765c97f13"
Accept-Ranges: bytes
Content-Length: 22
Content-Type: text/html; charset=UTF-8

2、配置和维护

安装 httpd 软件包后,默认配置将写入到 /etc/httpd/conf/httpd.conf ,也叫作 主配置文件
此配置针对通过纯 http 进入任何主机名的请求来提供 /var/www/html 的内容。
httpd.conf 的基本语法由两部分组成 :Key Value 配置指令和类似于 HTML 的块,后者中嵌入了其他配置
指令。块范围之外的键值对会影响 整个服务器配置,而块中的指令通常仅应用于块所指示的配置的某一
部分,或者在满足了块设置的要求时才会应用。如下图所示:

配置分析

[root@webserver ~]# grep -v '#' /etc/httpd/conf/httpd.conf | grep -v '^$'
ServerRoot "/etc/httpd" # 使用相对路径引入文件到主配置文件时,相对路径+此处的路径
来形成一个从/开始的绝对路径
Listen 80 # 监听TCP 80端口,可以使用Ip地址:端口的当时修改
# 可以配置多个Listen监听多个不同的端口,但是重复的
Listen配置将导致HTTPD无法启动
Include conf.modules.d/*.conf
#所有/etc/httpd/conf.modules.d/目录下.conf结尾的文
件都 # 导入到/etc/httpd/conf/httpd.conf
User apache # 程序用户为apache
Group apache # 程序组账号为apache
ServerAdmin root@localhost # 服务器管理员邮箱
<Directory /> # <Directory>块设置指定目录以及所有后代目录的配置指令。
# <Directory>块中的常见指令包括以下几种:
# Allow0verride None:对于按目录的配置设置,将不会查阅
# .htaccess 文件。将其设置为任何其他设置都将导致
# 性能损失以及可能的安全后果。
# Require A11 Denied:httpd 将拒绝提供此目录的内容,
# 当客户端请求时,将返回HTTP/1.1403 Forbidden错误。
# Require A11 Granted:允许访问此目录。对普通内容树之
# 外的目录设置此选项可能会产生安全影响。
# 0ptions[[+|-]0PTIONS]...:为某个目录开启(或关闭)
# 特定选项。例如,如果请求了某个目录并且该目录中不存在
# index.htm1文件,则Indexes 选项将显示一个目录列表。
AllowOverride none
Require all denied
</Directory>
DocumentRoot "/var/www/html" #此设置确定 httpd 将搜索请求文件的位置。重要的一点
是,
# 此处指定的目录可以由httpd(常规权限和 SELinux)读
取
# ,并且对应的 <Directory>块已声明为允许访问。
<Directory "/var/www">
AllowOverride None
Require all granted
</Directory>
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<IfModule dir_module> # 仅当加载指定扩展模块时,此块才会应用其内容。在此情况
下,
# 会加载dir_module,因此DirectoryIndex 指令可用于
# 指定在请求目录时应使用的文件。
DirectoryIndex index.html
</IfModule>
<Files ".ht*"> # 类似于Directory,
Require all denied
</Files>
ErrorLog "logs/error_log" # 错误日志
LogLevel warn
<IfModule log_config_module> # 指定了几种日志格式,分别是combined、common、
combinedio;默认场景下均使用combined这种日志格式
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{UserAgent}i\" %I %O" combinedio
</IfModule>
CustomLog "logs/access_log" combined
</IfModule>
<IfModule alias_module>
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None

Require all granted
</Directory>
<IfModule mime_module>
TypesConfig /etc/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</IfModule>
AddDefaultCharset UTF-8 # 此设置向 text/plain和 text/htm1 资源的
# Content-Type 报头中添加 charset 部分。
# 可以使用 AddDefaultCharset 0ff将其禁用
<IfModule mime_magic_module>
MIMEMagicFile conf/magic
</IfModule>
EnableSendfile on # 启用 EnableSendfile 以提高文件传输的性能和效
率。
IncludeOptional conf.d/*.conf # 所有/etc/httpd/conf.d/目录下.conf结尾的文件都
# 导入到/etc/httpd/conf/httpd.conf

修改配置文件,改变httpd的一些默认配置:

监听的端口号
修改默认的首页文件保存目录
对于防火墙和 selinux 不熟悉的同学建议关闭防火墙和修改 SELinux 为宽容模式

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

docker内实现多机多卡分布式训练

docker内实现多机多卡分布式训练 1. 多台docker宿主机网络配置2. 创建overlay 网络3. 注意 1. 多台docker宿主机网络配置 https://docs.docker.com/network/overlay/ 这里需要创建overlay网络使得多台宿主机的容器可以通过网络连接 初始化swarm集群&#xff0c;并设置主节点&a…

架构师核心-云计算云上实战(云计算基础、云服务器ECS、云设施实战、云上高并发Web架构)

文章目录 云计算基础1. 概念1. 云平台优势2. 公有云3. 私有云4. IaaS、PaaS、SaaS 2. 云设施1. 概览2. 核心组件 云服务器ECS1. ECS介绍1. 简介2. 组件3. 概念4. 图解5. 规格6. 场景 2. ECS服务器开通1. 开通服务器2. 连接服务器 3. 云部署准备1. 1Panel介绍2. 安装1Panel3.安全…

函数的使用

Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 前面已经介绍了函数的创建以及调用&#xff0c;下面就通过范例学习函数的使用 创建一个函数&#xff0c;如果是偶数则计算其平方&#xff0c;如果是奇数则计算其平方根 分…

基于JAVA的机场航班起降与协调管理系统

毕业设计&#xff08;论文&#xff09;任务书 第1页 毕业设计&#xff08;论文&#xff09;题目&#xff1a; 基于JAVA的机场航班起降与协调管理系统 毕业设计&#xff08;论文&#xff09;要求及原始数据&#xff08;资料&#xff09;&#xff1a; 1&#xff0e;综述机场航班调…

模块三:二分——69.x的平方根

文章目录 题目描述算法原理解法一&#xff1a;暴力查找解法二&#xff1a;二分查找 代码实现暴力查找CJava 题目描述 题目链接&#xff1a;69.x的平方根 算法原理 解法一&#xff1a;暴力查找 依次枚举 [0, x] 之间的所有数 i &#xff08;这⾥没有必要研究是否枚举到 x /…

三分钟快速理解Flink 作业提交流程(包工头的工程之路)

核心组件 我们先来简单了解一下 flink 作业提交涉及到的组件 同时&#xff0c;如果不了解 Yarn 的同学欢迎跳转到这篇文章&#xff0c;了解一下健鑫集团的工程承包流程(doge): 三分钟快速理解Yarn的工作流程 JobManager JobManager 是整个flink作业的管理者 包含 Dispatch…

java 学习一

jdk下载地址 配置环境变量

多项式和Bezier曲线拟合

目录 1. 多项式拟合2. Bezier曲线拟合3. 源码地址 1. 多项式拟合 在曲线拟合中&#xff0c;多项式拟合方法的性能受到三个主要因素的影响&#xff1a;采样点个数、多项式阶数和正则项。 采样点个数 N N N&#xff1a;从Figure 1中可以看出较少的采样点个数可能导致过拟合&…

【Nginx】centos和Ubuntu操作系统下载Nginx配置文件并启动Nginx服务详解

目录 &#x1f337; 安装Nginx环境 &#x1f340; centos操作系统 &#x1f340; ubuntu操作系统 &#x1f337; 安装Nginx环境 以下是在linux系统中安装Nginx的步骤&#xff1a; 查看服务器属于哪个操作系统 cat /etc/os-release安装 yum&#xff1a; 如果你确定你的系统…

Linux驱动开发——(四)内核定时器

一、内核的时间管理 1.1 节拍率 Linux内核中有大量的函数需要时间管理&#xff0c;比如周期性的调度程序、延时程序等等&#xff0c;对于驱动编写者来说最常用的是定时器。 硬件定时器提供时钟源&#xff0c;时钟源的频率可以设置&#xff0c;设置好以后就周期性的产生定时中…

linux负载均衡 和 系统负载分析笔记

1 负载均衡 1.1 计算负载 1.1.1 PELT算法简介 从Linux3.8内核以后进程的负载计算不仅考虑权重&#xff0c;⽽且跟踪每个调度实体的历史负载情况&#xff0c;该算法称为PELT(Per-entity Load Tracking) 《奔跑吧Linux内核》卷1&#xff1a;基础架构&#xff1b;P505 相关资料…

stack、queue(priority_queue)的模拟实现和deque的简单介绍

stack和queue(priority_queue) 1. 容器适配器 适配器(Adapter)&#xff1a;一种用来修饰容器(Containers)或仿函数(Functors)或迭代器(Iterator)接口的东西。 适配器是一种设计模式&#xff0c;该模式将一个类的接口转换成客户希望的另外一个接口。 现实中拿插座来说&#xf…

serverLess

第一步 安装依赖 npm install serverless-devs/s g 第二步 配置秘钥&#xff1a; 第三步 执行终端 执行命令 s config add 选择 alibaba cloud &#xff08;alibaba&#xff09; 把对应的ID secret填写&#xff0c;第三个别名可以随便写&#xff1a; serverLess 查看是…

ClickHouse 高可用之副本

文章目录 ClickHouse 副本支持副本的引擎配置高可用副本副本应用1.副本表概述2.创建副本表3.写入模拟数据4.副本验证 扩展 —— 在 Zookeeper 中查看副本表信息 ClickHouse 副本 ClickHouse 通过副本机制&#xff0c;可以将数据拷贝存储在不同的节点上。这样&#xff0c;如果一…

Redis底层数据结构之Dict

目录 一、概述二、Dict结构三、Dictht结构四、DictEntry结构五、核心特性 上一篇文章 reids底层数据结构之quicklist 一、概述 Redis 的 Dict 是一个高效的键值对映射数据结构&#xff0c;采用双哈希表实现以支持无锁的渐进式 Rehash&#xff0c;确保扩容或缩容时的高效性能。…

linux autogroup

一&#xff1a;概述 对于linux autogroup的作用&#xff0c;很多同学可能是听说过&#xff0c;但&#xff0c;并未验证过。 考虑下面场景&#xff0c;开两个terminal&#xff0c;T1和T2&#xff0c;在T1中运行进程P1&#xff0c;P1开启9个线程编译代码&#xff0c;在T2中运行…

Datawhale ChatGPT基础科普

根据课程GitHub - datawhalechina/hugging-llm: HuggingLLM, Hugging Future. 摘写自己不懂得一些地方&#xff0c;具体可以再到以上项目地址 LM&#xff1a;这是ChatGPT的基石的基石。 Transformer&#xff1a;这是ChatGPT的基石&#xff0c;准确来说它的一部分是基石。 G…

销售经理与员工:如何展开有效的绩效面谈

在当今竞争激烈的商业环境中&#xff0c;销售经理与员工之间的绩效面谈显得尤为重要。有效的绩效面谈不仅能够提升员工的工作积极性&#xff0c;促进团队的整体绩效&#xff0c;还能够加强销售经理与员工之间的沟通与理解&#xff0c;为企业的发展奠定坚实的基础。本文将探讨销…

7.2K star!一个完全免费,可以本地部署的 AI 搜索聚合器。新手可尝试

原文链接&#xff1a;7.2K star&#xff01;一个完全免费&#xff0c;可以本地部署的 AI 搜索聚合器。新手可尝试 ChatGPT 刚上线的时候我用的很少&#xff0c;还是习惯用 Google。主要还是因为不信任&#xff0c;怕它对我胡说八道。 慢慢的&#xff0c;也没有一个明确的时间…

Linux的学习之路:19、进程信号(1)

摘要 今天这张说一下信号的一部分知识 目录 摘要 一、信号 1、生活角度的信号 2、技术应用角度的信号 3、注意 4、用kill -l命令可以察看系统定义的信号列表 5、信号处理常见方式概览 二、产生信号 1、通过终端按键产生信号 2、调用系统函数向进程发信号 3、由软件…