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的网站根目录的默认首页时,它会显示我们配置的第一个网站的默认首页

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

编程生活day6--回文子串、蛇形填充数组、笨小猴、单词排序

回文子串 题目描述 给定一个字符串&#xff0c;输出所有长度至少为2的回文子串。 回文子串即从左往右输出和从右往左输出结果是一样的字符串&#xff0c;比如&#xff1a;abba&#xff0c;cccdeedccc都是回文字符串。 输入 一个字符串&#xff0c;由字母或数字组成。长度5…

【设计原则】CQRS

文章目录 概述组成与特点优缺点何时使用 CQRS 模式推荐阅读 概述 CQRS&#xff08;Command Query Responsibility Segregation&#xff09;是一种软件设计模式&#xff0c;其核心设计理念是将一个对象的数据访问&#xff08;查询&#xff09;和数据操作&#xff08;命令&#…

显示器and拓展坞PD底层协商

简介&#xff1a; PD显示器或者PD拓展坞方案中&#xff0c;连接显示设备的Type-C端口主要运行在DRP模式&#xff0c;在此模式下可以兼容Source&#xff08;显卡&#xff09;、Sink&#xff08;信号器&#xff09;、DRP&#xff08;手机、电脑&#xff09;模式的显示设备。 Sou…

探索设计模式的魅力:揭秘B/S模式在AI大模型时代的蜕变与进化

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》《MYSQL应用》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 &#x1f680; 转载自热榜文章&#xff1a;探索设计模式的魅力&#xff1a;揭秘B/S…

ArcGIS Pro导出布局时去除在线地图水印

目录 一、背景 二、解决方法 一、背景 在ArcGIS Pro中经常会用到软件自带的在线地图&#xff0c;但是在导出布局时&#xff0c;图片右下方会自带地图的水印 二、解决方法 解决方法&#xff1a;添加动态文本--服务图层制作者名单&#xff0c;然后在布局中选定位置添加 在状…

【星计划★C语言】c语言初相识:探索编程之路

&#x1f308;个人主页&#xff1a;聆风吟_ &#x1f525;系列专栏&#xff1a;星计划★C语言、Linux实践室 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言一. ⛳️第一个c语言程序二. ⛳️数据类型2.1 &#x1f514;数据单位2.2 &…

【ARM 嵌入式 C 常用数据结构系列 25 -- container_of 宏 使用介绍】

文章目录 container_of 宏container_of 宏的定义container_of 使用示例应用场景总结 container_of 宏 在Linux内核编程中&#xff0c;container_of宏是一个非常有用的工具&#xff0c;它允许开发者从指向结构体中某个成员的指针反向获得包含它的完整结构体的指针。这在实现基于…

Vol.34 Good Men Project:一个博客网站,每月90万访问量,通过付费订阅和广告变现

今天给大家分享的案例网站是&#xff1a;Good Men Project&#xff0c;这是一个专门针对男性成长的博客网站&#xff0c;内容包括人际关系、家庭、职业发展等话题。 它的网址是&#xff1a;The Good Men Project - The Conversation No One Else Is Having 流量情况 我们先看…

Linux :进程的程序替换

目录 一、什么是程序替换 1.1程序替换的原理 1.2更改为多进程版本 二、各种exe接口 2.2execlp ​编辑 2.2execv 2.3execle、execve、execvpe 一、什么是程序替换 1.1程序替换的原理 用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往…

LongAdder 和 Striped64 基础学习

cs&#xff0c;表示 Cell 数组的引用&#xff1b;b&#xff0c;表示获取的 base 值&#xff0c;类似于 AtomicLong 中全局变量的 value 值&#xff0c;在没有竞争的情况下数据直接累加到 base 上&#xff0c;或者扩容时&#xff0c;也需要将数据写入到 base 上&#xff1b;v&am…

32-2 APP渗透 - 移动APP架构

前言 app渗透和web渗透最大的区别就是抓包不一样 一、客户端: 反编译: 静态分析的基础手段,将可执行文件转换回高级编程语言源代码的过程。可用于了解应用的内部实现细节,进行漏洞挖掘和算法分析等。调试: 排查软件错误的一种手段,用于分析应用内部原理和行为。篡改/重打…

Unity | Shader基础知识(第十一集:什么是Normal Map法线贴图)

目录 前言 一、图片是否有法线贴图的视觉区别 二、有视觉区别的原因 三、法线贴图的作用 四、信息是如何存进去的 五、自己写一个Shader用到法线贴图 六、注意事项 七、作者的话 前言 本小节会给大家解释&#xff0c;什么是法线贴图&#xff1f;为什么法线贴图会产生深…

GPT4不限制使用次数了!GPT5即将推出了!

今天登录到ChatGPT Plus账户&#xff0c;出现了如下提示&#xff1a; 已经没有了数量和时间限制的提示。 更改前&#xff1a;每 3 小时限制 40 次&#xff08;团队计划为 100 次&#xff09;&#xff1b;更改后&#xff1a;可能会应用使用限制。 GPT-4放开限制 身边订阅了Ch…

C++多线程:单例模式与共享数据安全(七)

1、单例设计模式 单例设计模式&#xff0c;使用的频率比较高&#xff0c;整个项目中某个特殊的类对象只能创建一个 并且该类只对外暴露一个public方法用来获得这个对象。 单例设计模式又分懒汉式和饿汉式&#xff0c;同时对于懒汉式在多线程并发的情况下存在线程安全问题 饿汉…

【原创】基于分位数回归的卷积长短期结合注意力机制的神经网络(CNN-QRLSTM-Attention)回归预测的MATLAB实现

基于分位数回归的卷积长短期结合注意力机制的神经网络&#xff08;CNN-QRLSTM-Attention&#xff09;是一种用于时间序列数据预测的深度学习模型。该模型结合了卷积神经网络&#xff08;CNN&#xff09;、长短期记忆网络&#xff08;LSTM&#xff09;和注意力机制&#xff08;A…

C语言实现通讯录(从0-1的项目)

一、前言 1、实现通讯录首先我们要了解并懂得如何通过C语言来完成有关顺序表的实现 2、需要了解的内容&#xff1a;如何使用顺序表结构实现增、删、改、查等操作 二、顺序表的认识和实现 1、什么是顺序表 最基础的数据结构就是数组。 顺序表则是线性表的一种&#xff0c;…

图片改大小尺寸怎么改?几个修改图片尺寸的方法

日常生活和工作中&#xff0c;图片的大小和尺寸对于我们的工作和生活都至关重要&#xff0c;因此我们经常需要调整图片的大小。我们都知道压缩图是一款功能强大的图片在线处理工具&#xff0c;那么用它怎么调整图片大小呢&#xff1f;下面就让我们一起来看一下具体的操作步骤。…

基于Spring Boot的在线考试系统

开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven…

实时渲染 -- 材质(Materials)

一、自然界中的材质 首先了解下自然界中的材质 如上这幅图&#xff0c;不同的物体、场景、组合&#xff0c;会让我们看到不同的效果。 我们通常认为物体由其表面定义&#xff0c;表面是物体和其他物体或周围介质之间的边界面。但是物体内部的材质也会影响光照效果。我们目前只…

微服务(基础篇-008-es、kibana安装)

目录 05-初识ES-安装es_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1LQ4y127n4?p81&vd_source60a35a11f813c6dff0b76089e5e138cc 1.部署单点es 1.1.创建网络 1.2.加载镜像 1.3.运行 2.部署kibana 2.1.部署 2.2.DevTools 3.安装IK分词器 3.1.在线安装ik…