Linux的中间件

我们先补充点关于awk的内容

awk的用法其实很广。    $0 表示整条记录
变量:

NF 一行中有多少个字段(表示字段数)

NR : 代表当前记录的序号,从1开始计数。每读取一条记录,NR的值就会自动增加1。(一行就是一条记录)

FS:代表输入字段分隔符(Field Separator),用于指定输入数据的字段之间的分隔符。默认情况下,FS的值是空白字符,包括空格和制表符。可以通过设置FS变量来改变字段分隔符,例如FS="|"表示使用竖线作为分隔符。

RS:代表记录分隔符(Record Separator),用于指定输入数据时记录之间的分隔符。默认情况下,RS的值是换行符 。


OFS:代表输出字段分隔符(Output Field Separator),用于指定输出数据时字段之间的分隔符。默认情况下,OFS的值是空格。

ORS:代表输出记录分隔符(Output Record Separator),用于指定输出数据时记录之间的分隔符。默认情况下,ORS的值是换行符 。
 

 $1~/正则表达式/   第一段
[   ]   里面中的任意一个 

awk 模块    BEGIN    END
BEGIN 在读取文件之前,定义动作,定义变量
END:在读取文件且处理完成之后,输出一个结束
 

案例:
awk '{addr[$1]+=1}END{for(var in addr) print "地址",var,"次数是",addr[var]}' log1   //统计IP登录了几次  (/var/log/httpd)

awk -F "(from )|( port)" '/from.*port/{addr[$2]+=1}END{for(var in addr) print "地址",var,"次.是",addr[var]}' slog   统计IP登录了几次   (secure)

awk -F "[: ]" '$5>=16&&$5<=23{addr[$1]+=1}END{for(var in addr) print "地址",var,"出现次数",addr[var]}' log1   //统计规定时间段内登陆了几次

案例:服务器巡检

#!/bin/bash
check_mem()
{
    left_mem=`free -m |awk -F "[ ]+" 'NR==2{print $NF}'`
    total_mem=`free -m | awk -F "[ ]+" 'NR==2{print $2}'`
    percent_left=`echo "scale=2; $left_mem/$total_mem*100" | bc`
    echo "$percent_left%"
}
check_mem
check_disk()
{
    avail_disk=`df -h | awk -F "[ ]+" '/centos-root/{print $4}'`
    percent_disk=`df -h | awk -F "[ ]+" '/centos-root/{print $5}'`
    pos_disk=`df -h | awk -F "[ ]+" '/centos-root/{print $6}'`
    echo "磁盘位置:$pos_disk"
    echo "可用空间大小:$avail_disk"
    echo "磁盘空闲率:$percent_disk"

}
check_disk
check_cpu()
{
    cpu_load=`top -n1 | awk -F "load average: " 'NR==1{print $2}'`
    echo "CPU负载是: $cpu_load"
}
check_cpu

一、中间件

Web中间件是一类位于Web浏览器和Web服务器之间的软件,它们用于处理Web应用程序中的请求和响应

1、web的功能和特色 

 1、请求处理:web中间件负责接收来自用户的请求,并根据请求的类型和内容,将其转发到适当的服务器或应用程序进行处理

2、响应管理:响应管理:处理后的响应也会通过Web中间件返回给用户,中间件在此过程中可能会对响应数据进行加工或优化,以提高性能或增加安全性。
3、功能扩展:Web中间件可以提供额外的功能,如会话管理、安全验证、负载均衡、缓存等,这些功能对于提升Web应用的性能和用户体验至关重要。

4、解耦作用:它有助于将具体的业务逻辑与底层的技术细节分离,使得开发人员可以专注于业务逻辑的实现,而不必关心底层的网络通信、数据存储等细节。

5、系统集成:中间件提供了一种机制,使得不同来源、不同类型的应用程序可以相互通信和集成,共享资源和服务。

6、分布式系统支持:在分布式系统中,中间件起到了关键的作用,它帮助各个分布在不同地点的服务和应用协同工作,实现数据的一致性和系统的高可用性。
7、常见的web中间件:包括代理服务器、负载均衡器、缓存服务器等,而像Tomcat、Weblogic、Jboss等也都属于Web中间件的范畴。(apache/ngingx/iis 是windows专用)

http协议:超文本传输协议
作用:让用户通过浏览器请求到服务器并接受客户端返回的数据,最后在浏览器中显示出来 

2、http请求报文格式 

第一行:请求行 

请求方法(GET POST PUT等) 请求url   清秀协议版本号使用的http协议(0.9、1.0、1.1)
第二行:请求头   

HOST  主机头(指定网站域名或IP)     Connection:close 当前客户端的连接状态   User-Agent :UA头,客户端访问网站时候使用的浏览器类型   Referer :表示当前这个请求是直接访问还是从其他界面跳转来的
第三行:空白行开始)请求体

 3、http响应报文格式 

第一行:响应行   响应http版本号   http状态码    状态码对应的消息短语

第二行:响应头   

第三行:空白行开始下面)响应体

4、http状态码

1xx :提示信息
2xx  :表示客户端请求成功   

        200   

        201  

3xx: 客户端本次请求被重定向

        301  永久重定向

        302   临时重定向

        304   表示访问到的页面来自浏览器的缓存

4xx:客户端访问失败(客户端原因)

        404 not found   页面不存在

        403  forbidden  表示无权访问   或者是默认首页不存在

5xx:客户端访问失败(服务器端原因)

在浏览器的开发者工具我们可以看到三种首部 
请求头部 Request
响应头部  Response
通用首部 General

http协协议的格式:http://域名:端口号/路径/文件名 

 5、apache

linux中内置apache

6、安装apache

第一步:配置yum源
第二步:安装apache   yum install httpd

第三步:启动apache    systemctl start httpd     systemctl enable httpd

第四步:检查apache的状态  systemctl status httod

第五步:访问apache
apache的作用就是开启一个端口,等待客户端通过浏览器访问

ip地址+默认端口80 

7、测试之前,建议关闭防火墙和selinux 

 #关闭防火墙
systemctl disable firewalld   
systemctl stop firewalld

排查故障
第一步:检查网络是否通常【ping】 
第二步:检查服务是否开启【状态】
第三步:测试是否可以访问服务的端口【telnet】
第四步:用其他主机/ip测试是否可以访问

 8、补充:检查哪个进程占用了80端口

lsof -i :80
ss -tunlp | grep 80

9、相关文件 

 配置文件:httpd.conf
 日志文件:access.log 访问日志  error.log 错误日志

 如果是yum安装的apache
日志文件的位置:/var/log/httpd
配置文件的位置:/etc/httpd/conf

如果用编译安装的apache
日志文件的位置:安装位置下/logs/

配置文件的位置:安装位置下/conf/

10、 配置文件中几个关键字段

ServerName:网站的域名  

DocumentRoot:指定网站的根目录

Listen:指定监听的端口号
DirectoryIndex:默认首页

* 这些都可以修改,注意别改错了,修改完之后要重启httpd让配置生效

11、虚拟主机 

 虚拟机主机就是用一个apache发布多个网站

 12、如何发布多个网站
第一步:进入到/etc/httpd/conf.d 目录
第二步:创建一个名为xxx.conf 的文件

vim vhost.conf

第三步:写入文件内容

<VirtualHost *:80>    # 定义一个虚拟主机,监听80端口
    ServerAdmin 1374902537@qq.com   # 设置管理员邮箱
    DocumentRoot "/var/www/html/web1"      # 设置网站根目录
    ServerName www.web1.com     # 设置服务器名称
    DirectoryIndex index.html aaa.html       # 设置默认访问的文件名
    <Directory "/var/www/html/web1">        # 设置目录配置
        Options Indexes FollowSymLinks     # 设置目录选项,允许索引和跟随符号链接
        AllowOverride None          # 禁止覆盖配置文件
        Require all granted              # 允许所有用户访问
    </directory>
</VirtualHost>


<VirtualHost *:80>
    ServerAdmin 1374902537@qq.com
    DocumentRoot "/var/www/html/web2"
    ServerName www.web2.com
    DirectoryIndex index.html bbb.html
    <Directory "/var/www/html/web2">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </directory>
</VirtualHost>

第四步:重启apache服务
 

systemctl restart httpd

如果出现报错的话,很大可能就是你的配置文件没写对 

像这样,你可以根据他的提示来判断你那里的配置文件写错了

第五步:切换目录到/var/www/html网站跟目录下
 

cd /va/www/html

第六步:创建刚才的网站目录

mkdir web{1..2}

然后在web1中写入默认首页的内容
echo "111" > index.html
 

在web2中写入默认首页的内容

echo "222" > index.html
 

第七步:找到你windows下的hosts文件  它在C:\Windows\System32\drivers\etc

在里面写入你linux的ip 域名

192.168.1.xxx www.web1.com

192.168.1.xxx www.web2.com


第八步:用域名访问一下验证是否成功
 

注意:当你配置了多个网站的话,我们去访问apache的网站根目录的默认首页时,它会显示我们配置的第一个网站的默认首页

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

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

相关文章

Applied Spatial Statistics(一)统计推断

Applied Spatial Statistics&#xff08;一&#xff09;统计推断 1.统计推断&#xff1a;Bootstrap 置信区间 本笔记本演示了如何使用引导方法构建统计数据的置信区间。 我们还将检查 CI 的覆盖概率。 构建 Bootstrap 置信区间检查覆盖概率Bootstrap CI 相关系数 import nu…

数据挖掘入门项目二手交易车价格预测之特征工程

文章目录 目标常见的特征工程具体步骤1. 导入数据2. 删除异常值3. 特征构造3.1 为树模型构造特征3.2 为LR NN 之类的模型构造特征 4. 特征筛选过滤式包裹式嵌入式 5. 总结 本文数据集来自阿里天池&#xff1a;https://tianchi.aliyun.com/competition/entrance/231784/informat…

Debian linux版本下运行的openmediavault网盘 千兆网卡升级万兆

一、适用场景 1、使用vmware ESXi虚拟化平台运行多种不同应用服务器时&#xff0c;其中网盘服务器采用开源的openmediavault搭建&#xff1b; 2、将老专业服务器升级千兆网为万兆网&#xff1b; 3、需要转移的数据量大的企业或用户&#xff1b; 4、从服务器到服务器的数据转移…

LeetCode刷题【链表,图论,回溯】

目录 链表138. 随机链表的复制148. 排序链表146. LRU 缓存 图论200. 岛屿数量994. 腐烂的橘子207. 课程表 回溯 链表 138. 随机链表的复制 给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;该指针可以指向链表中的任何节点或空节…

基于知识图谱的个性化学习推荐系统的设计与实现(论文+源码)_kaic

摘 要 Abstract 1 绪 论 1.1 研究背景及意义 1.2 国内外现状研究 1.3 研究工作和论文结构 2 相关技术 2.1 HTML 语言 2.2 Python 语言 2.3 数据库技术 2.4 Django 框架 3 系统分析 3.1 需求概述 3.2 系统可行性分析 3.2.1 技术可行性 3.2.2 经济可行性 3.2.3 操作可行性 3.3 功…

网络基础二补充——json与http协议

五、市面上常用序列化和反序列化工具 ​ 常用的有&#xff1a;json、protobuf、xml三种方案&#xff1b; 5.1json的使用 1.安装jsoncpp库&#xff0c;是一个第三方的开发库文件&#xff1b; sudo yum install -y jsoncpp-devel2.使用json ​ 经常使用的头文件是json.h&…

Python之Opencv教程(2):图像边缘检测

1、什么是边缘检测 OpenCV中的边缘检测是一种常见的图像处理技术&#xff0c;用于检测图像中物体边缘的位置。常用的边缘检测算法包括Sobel算子、Scharr算子、Laplacian算子和Canny边缘检测算法等。下面将介绍使用OpenCV实现这些边缘检测算法的方法。 2、边缘检测的作用 边缘…

C语言---自定义类型:联合体和枚举

文章目录 前言1. 联合体类型的声明1.1 联合体类型的声明1.2 联合体的特点1.4 联合体大小的计算1.5 联合的一个练习 2.枚举2.1 枚举类型的声明2.2 枚举类型的优点 前言 上一篇我们学习了自定义类型—结构体&#xff0c;大家会发现&#xff0c;构建一个结构体时&#xff0c;有些…

程序数据模型由OS还是硬件架构决定?

文章目录 前言硬件架构的作用OS的作用编译器的角色OS的数据模型参考 前言 在文章 1>>32的结果是1还是0 中提到了数据模型 L P 64 LP64 LP64 &#xff0c;并提出这个数据模型主要是由 U n i x Unix Unix 以及类 U n i x Unix Unix 的操作系统使用居多&#xff0c;例如…

macOS Catalina for mac (macos 10.15系统)v10.15.7正式版

macOS Catalina是苹果公司专为麦金塔电脑推出的桌面操作系统&#xff0c;是macOS的第16个主要版本。它继承了苹果一贯的优雅与高效&#xff0c;不仅引入了分割视图和侧边栏&#xff0c;还带来了全新的音乐和播客应用&#xff0c;极大地提升了用户体验。在隐私保护和安全性方面&…

java学习总结以及考试总结

1.对象的this引用 this引用用于区分成员变量和局部变量&#xff0c;this引用的一定的指的是成员变量 所以说this语句的作用就是区分成员变量和局部变量&#xff08;如何呢&#xff09; package com.temo.test1;public class student{private String name;//成员变量private …

Optimizer神经网络中各种优化器介绍

1. SGD 1.1 batch-GD 每次更新使用全部的样本&#xff0c;注意会对所有的样本取均值&#xff0c;这样每次更新的速度慢。计算量大。 1.2 SGD 每次随机取一个样本。这样更新速度更快。SGD算法在于每次只去拟合一个训练样本&#xff0c;这使得在梯度下降过程中不需去用所有训…

OpenEuler华为欧拉系统安装教程及联网配置

OpenEuler简介 openEuler是一款开源操作系统。当前openEuler内核源于Linux&#xff0c;支持鲲鹏及其它多种处理器&#xff0c;能够充分释放计算芯片的潜能&#xff0c;是由全球开源贡献者构建的高效、稳定、安全的开源操作系统&#xff0c;适用于数据库、大数据、云计算、人工智…

【Laravel】07 快速套用一个网站模板

【Laravel】07 快速套用一个网站模板 1. 新增post表2.补充 &#xff1a;生成Model、Controller、迁移文件3. 使用php artisan tinker4. 网站模板下载 课程地址 1. 新增post表 在Model中创建Post (base) ➜ example-app php artisan make:model Post Model created successfu…

力扣 1035. 不相交的线

题目来源&#xff1a;https://leetcode.cn/problems/uncrossed-lines/description/ C题解&#xff1a;经过细细一推导&#xff0c;就发现跟力扣 1143. 最长公共子序列-CSDN博客 换汤不换药。 直线不能相交&#xff0c;说明元素顺序不能改变&#xff0c;求可以绘制的最大连线数…

相机显示储存卡未格式化怎么回事?怎么办

在摄影的学习和实践中&#xff0c;相机是我们记录美好瞬间的得力助手。然而&#xff0c;当相机突然提示储存卡未格式化时&#xff0c;这往往会让我们感到困惑和焦虑。本文将探讨相机显示储存卡未格式化的可能原因&#xff0c;并提供相应的解决方案。 图片来源于网络&#xff0c…

游戏引擎中的大气和云的渲染

一、大气 首先和光线追踪类似&#xff0c;大气渲染也有类似的渲染公式&#xff0c;在实际处理中也有类似 Blinn-Phong的拟合模型。关键参数是当前点到天顶的角度和到太阳的角度 二、大气散射理论 光和介质的接触&#xff1a; Absorption 吸收Out-scattering 散射Emission …

汇编语言第四版-王爽第1章 基础知识

前言 基础知识 &#xff08;1&#xff09;换成bit&#xff0c;1KB1024B&#xff0c;1Byte8bit&#xff1b;1KB1024*8bit&#xff0c;即2的13次方&#xff0c;宽度为13. &#xff08;2&#xff09;1个存储单元只能放1个字节&#xff0c;1KB1024B&#xff1b;编号从0到1023. &a…

web前端面试题----->VUE

Vue的数据双向绑定是通过Vue的响应式系统实现的。具体原理&#xff1a; 1. Vue会在初始化时对数据对象进行遍历&#xff0c;使用Object.defineProperty方法将每个属性转化为getter、setter。这样在访问或修改数据时&#xff0c;Vue能够监听到数据的变化。 2. 当数据发生变化时…

书生 浦语大模型全链路开源体系

通用大模型成为发展通用人工智能的重要途径 书生 浦语大模型的开源历程 书生 浦语 2.0体系&#xff0c;面向不同的使用需求&#xff0c;每个规格包含三个模型版本&#xff0c;&#xff08;7B、20B&#xff09;InternLM2-Base、InternLM2、InternLM2-Chat。 大模型是回归语言建…