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.mzph.cn/news/784300.shtml

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

相关文章

鸿蒙TypeScript入门学习第5天:【TypeScript 运算符】

1、TypeScript 运算符 运算符用于执行程序代码运算&#xff0c;会针对一个以上操作数项目来进行运算。 考虑以下计算&#xff1a; 7 5 12复制以上实例中 7、5 和 12 是操作数。 运算符 用于加值。 运算符 用于赋值。 TypeScript 主要包含以下几种运算&#xff1a; 算…

NEO 学习之 MLE(最大似然估计)

文章目录 简单题目MLE 在不同的分布的运用正态分布指数分布均匀分布泊松分布 如何理解 最大似然估计&#xff1f; 就是我们先取出一堆样本&#xff0c;得到一个L( θ \theta θ) 函数&#xff0c;然后的话&#xff0c;这个是关于 θ \theta θ 的一个函数&#xff0c;那么由于存…

C++的入门学习

✨✨✨学习的道路很枯燥&#xff0c;希望我们能并肩走下来! 文章目录 目录 文章目录 前言 一、C关键字(C98) 二、命名空间 2.1 引入 ​编辑2.2 命名空间定义 2.3 命名空间的使用 三. C输入&输出 四.缺省参数 4.1 缺省参数概念 4.2 缺省参数分类 1.全缺省参数 2…

HTTP 协议的基本格式

一 HTTP是什么 超文本传输协议&#xff08;Hypertext Transfer Protocol&#xff0c;HTTP&#xff09;是一个简单的请求-响应协议&#xff0c;它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。 HTTP协议的主要特点包括&#xff1a; 无连…

七、Audio,Paper or Kindle:What‘s the best way to read a book?听书、纸书、电纸书,阅读方式该怎么选?

Whats the most effective way to read a book?Should you stick to paper books you can flip the pages, dog-ear and write notes in the margin?What about Kindle or other eReaders, which let you download new books instantly and cheaply?Is it okay to listen to…

经验分享:企微文档是什么?对企业有什么用处?

许多在企业单位工作的小伙伴应该都用过企业微信&#xff0c;这是一个专为企业打造的高效办公平台。然而&#xff0c;你是否了解其中的一个功能—企微文档呢&#xff1f;在这篇文章中&#xff0c;我将详细的解读一下企微文档是什么和它对企业的益处。 那么&#xff0c;什么是企微…

六、Django开发

六、Django开发 1.新建项目2.创建app2.1 第一种方法&#xff1a;2.2 利用pycharm中tools工具直接创建app 3.设计表结构&#xff08;django&#xff09;4.在MySQL中生成表5.静态文件管理6.部门管理6.1 部门列表 7.模板的继承8.用户管理8.1初识Form1.views.py2.user_add.html 8.2…

7_springboot_shiro_jwt_多端认证鉴权_自定义AuthenticationToken

1. 目标 ​ 本小节会先对Shiro的核心流程进行一次回顾&#xff0c;并进行梳理。然后会介绍如果应用是以API接口的方式提供给它方进行调用&#xff0c;那么在这种情况下如何使用Shiro框架来完成接口调用的认证和授权。 2. 核心架构 引用官方的架构图&#xff1a; 2.1 Subje…

go: go.mod file not found in current directory or any parent directory.如何解决?

这个错误表明你正在执行 go get 命令&#xff0c;但是当前目录或任何父目录中都找不到 go.mod 文件。这可能是因为你的项目还没有使用 Go Modules 进行管理。 要解决这个问题&#xff0c;有几种方法&#xff1a; go mod init <module-name> 其中 <module-name>…

第四篇:3.3 无效流量(Invalid traffic) - IAB/MRC及《增强现实广告效果测量指南1.0》

翻译计划 第一篇概述—IAB与MRC及《增强现实广告效果测量指南》之目录、适用范围及术语第二篇广告效果测量定义和其他矩阵之- 3.1 广告印象&#xff08;AD Impression&#xff09;第三篇广告效果测量定义和其他矩阵之- 3.2 可见性 &#xff08;Viewability&#xff09;第四篇广…

Unix信号处理

信号的基本概念我已经在上一节中简单介绍了&#xff0c;大家可以去看我的上一篇博客&#xff1a; Unix中的进程和线程-2-CSDN博客 1.信号的产生 kill函数&#xff1a; #include <signal.h> #include <fcntl.h> #include<t_stdio.h> //自定义信号处理函数,n为…

云服务器8核32G配置报价大全,腾讯云、阿里云和京东云

8核32G云服务器租用优惠价格表&#xff0c;云服务器吧yunfuwuqiba.com整理阿里云8核32G服务器、腾讯云8核32G和京东云8C32G云主机配置报价&#xff0c;腾讯云和京东云是轻量应用服务器&#xff0c;阿里云是云服务器ECS&#xff1a; 阿里云8核32G服务器 阿里云8核32G服务器价格…

鸿蒙手机cordova-plugin-camera不能拍照和图片不显示问题

鸿蒙手机cordova-plugin-camera不能拍照和图片不显示问题 一、运行环境 1、硬件 手机型号&#xff1a;NOVA 7 系统&#xff1a;HarmonyOS版本 4.0.0 2、软件 android SDK platforms&#xff1a;14.0(API Level 34)、13.0&#xff08;API Level 33&#xff09; SDK Build-T…

CentOS系统下Docker的安装教程

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

K8S之Secret的介绍和使用

Secret Secret的介绍Secret的使用通过环境变量引入Secret通过volume挂载Secret Secret的介绍 Secret是一种保护敏感数据的资源对象。例如&#xff1a;密码、token、秘钥等&#xff0c;而不需要把这些敏感数据暴露到镜像或者Pod Spec中。Secret可以以Volume或者环境变量的方式使…

【Linux】TCP网络套接字编程+守护进程

文章目录 日志类&#xff08;完成TCP/UDP套接字常见连接过程中的日志打印&#xff09;单进程版本的服务器客户端通信多进程版本和多线程版本守护进程化的多线程服务器 日志类&#xff08;完成TCP/UDP套接字常见连接过程中的日志打印&#xff09; 为了让我们的代码更规范化&…

车载电子电器架构 —— 诊断数据库开发

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

Python 后端 Flask 使用 Flask-SocketIO、前端 Vue3 实现长连接 Websocket 通信详细教程(更新中)

Flask 安装 Flask-Socketio Flask-SocketIO 第三方库使 Flask 应用程序可以实现客户端和服务器之间的低延迟双向通信。客户端应用程序可以使用 Javascript、Python、C、Java 和 Swift 中的任何 SocketIO 客户端库或任何其他兼容客户端来建立与服务器的永久连接。 Flask-Socke…

基于微信小程序的自习室预约系统的设计与实现

基于微信小程序的自习室预约系统的设计与实现 文章目录 基于微信小程序的自习室预约系统的设计与实现1、前言介绍2、功能设计3、功能实现4、开发技术简介5、系统物理架构6、系统流程图7、库表设计8、关键代码9、源码获取10、 &#x1f389;写在最后 1、前言介绍 伴随着信息技术…

AR-Net网络(图像篡改检测)

AR-Net网络 摘要AbstractAR-Net1. 文献摘要2. 研究背景3. 创新点4. AR-Net 网络架构5. 实验6. 结论总结 摘要 AR-Net使用自适应注意力机制来融合位置和通道维度的特征&#xff0c;使网络能够充分利用不同维度的被篡改特征&#xff0c;此外&#xff0c;AR-Net 改进了预测掩模&a…