Linux初学(十一)中间件

一、web服务

1.1 中间件简介

中间件其实就是一类软件,中间件的作用是让用户可以看到一个网页
总结:客户端可以向服务端发送请求,服务器端会通过中间件程序来接收请求,然后处理请求,最后将处理结果返回给客户端

1.2 中间件软件程序:

  • iis:Windows服务器自带的中间件
  • nginx:支持跨平台,可以运行在各种系统,Windows/linux/unix....
  • apache:支持跨平台,可以运行在各种系统,Windows/linux/unix....
  • Tomcat:支持跨平台,可以运行在各种系统,Windows/linux/unix....

注意:一般情况下,中间件程序占用的端口是80

1.3 两种常见的web应用程序架构:

lamp:Linux、apache、mysql、php

lnmp:Linux、nginx、mysql、php

1.4 http协议

http协议:Hyper Text Transfor Protocol

作用:让用户通过浏览器发送请求到服务器端,并且接收客户端返回过来的数据,最后在浏览器展示出来 

1.4.1 http请求报文格式:

格式:

第一行: 请求行
第二行~空白行: 请求头
空白行下面: 请求体

案例:

GET /download/a.html HTTP/1.1
Host: www.baidu.com
Connection: close
sec-ch-ua: "Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Ap0.0.0 Safari/537.36
Sec-Purpose: prefetch;prerender
Purpose: prefetch
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,i=0.8,application/signedexchange;v=b3;q=0.7
Sec-Fetch-Site: none注意:这是GET传参,GET传参是没有请求体的,请求体和请求头结合了

请求行的格式:
 

第一部分:请求方法:GET/POST第二部分:请求的URL第三部分:客户端使用的HTTP协议版本号http 0.9http 1.0http 1.1

请求头的内容:
 

Host: 指定目标网站的域名或IP地址
Connection: 当前客户端的链接状态
User-Agent: 指定客户端访问网站的时候使用的浏览器
Referer: 表示当前这个请求是直接访问过来的,还是从其他的网站跳转过来的
1.4.2 http响应报文格式:

格式:

第一行: 响应行
第二行~空白行: 响应头
空白行下面: 响应体

案例:

HTTP/1.1 / 200 OK
Content-Security-Policy: frame-ancestors 'self' http
Content-Type: text/html; charset=utf-8
Date: Fri, 29 Mar 2024 00:27:39 GMT
Server: BWS/1.1
Traceid: 1711672059044989722616594963546741901591
X-Ua-Compatible: IE=Edge,chrome=1
X-Xss-Protection: 1;mode=block
Connection: close
Content-Length: 406827
<!DOCTYPE html><!--STATUS OK--><html><head><meta http-equiv="Content-Type"
content="text/html;charset=utf-8"><meta http-equiv="X-UA-Compatible"
content="IE=edge,c

响应行的格式:
 

第一部分: http协议版本号
第二部分: 客户端这次请求的状态码,这个状态码可以判断这次客户端的请求是成功的还是失败的
第三部分: 状态码对应的消息短语

状态码:

  • 1xx
    • 作用:提示信息
  • 2xx
    • 作用:表示客户端的本次请求是成功的
    • 200
  • 3xx
    • 作用:表示客户端本次请求被重定向到了其他地址
    • 301: 永久重定向
    • 302:临时重定向
    • 304:表示数据来自浏览器缓存
  • 4xx
    • 作用:表示客户端的本次请求是失败的【客户端原因】
      • 403 forbidden
        • 第一种可能:客户端所请求的文件,无权查看
        • 第二种可能:客户端没有指定要访问哪个文件,于此同时服务器默认要展示给用户的文件不存在也会报403
      • 404 not found:客户端所访问的页面不存在
  • 5xx
    • 作用:表示客户端的本次请求是成功的【服务器端原因】
    • 500
    • 501
    • 502

浏览器开发者工具可以看到数据包的三种首部【按F12】

1.5 http协议的格式

http://域名:端口号/路径/文件名

二、部署Apache

第一步:配置yum源

第二步:安装Apache

yum install httpd -y

第三步:启动Apache

systemctl start httpd                        #启动服务

systemctl enable httpd                    #设置开机的时候自动启动

systemctl status httpd                     #查看服务当前状态

第四步:检查端口号

ss -tunal | group 80
lsof -i :80

第五步:关闭selinux   #这是增强的安全配置,不好用

sed -i s/SELINUX=enforcing/SELINUX=disabled/g   /etc/selinux/config    #永久关闭

setenforce 0    #临时关闭

第六步:关闭防火墙

systemctl stop firewalld

systemctl disable firewalld

第七步:同浏览器访问测试

  • 在浏览器中输入Linux的IP就可以看到了
  • 注意:必须保证物理机和虚拟机可以通信才能看到网页

访问失败:排查故障

第一步:检测网络是否通畅   ping

第二步:检查Apache的状态

                systemctl status httpd

第三步:在xshell中输入

                telnet ip 端口          

第四步:换个ip访问

第五步:查看防火墙是否关闭

                systemctl status firewalld

第八步:编辑apache的配置文件(修改Apache的网站根目录是/abcd)

vim /etc/httpd/conf/httpd.conf
 

第一步操作:修改默认DocumentRoot

        注释掉原有的内容 #DocumentRoot "/var/www/html"

        添加一个新的网站根目录 DocumentRoot "/abcd"

第二个操作:添加授权

        

第九步:重启Apache

systemctl restart httpd
注意:别忘了创建 /abcd 目录

第十步:安装组件,用于实现文件互传

yum install lrzsz -y

第十一步:上传网页文件

注意:

需要先切换到 /abcd 下,然后再进行拖拽文件

这是在Xshell中进行的

第十二步:通过浏览器访问

http://linuxIP/文件名

http://linuxIP/文件名

例如:http://192.168.63.199/a.html

第十三步:指定网站的默认首页

vim /etc/httpd/conf/httpd.conf

<IfModule dir_module>
    DirectoryIndex index.html a.html
</IfModule>
# 意思默认首页先找index.html ,如果找不到就找a.html

第十四步:重启httpd

systemctl restart httpd

第十五步:指定网站的域名

vim  /etc/httpd/conf/httpd.conf

        ServerName www.newjb.com

第十六步:重启httpd

systemctl restart httpd

第十七步:修改自己电脑的hosts文件

位置:C:\windows\system32\dirvers\etc\hosts

添加一行: linuxIP   www.newjb.com
注意:需要把hosts文件,拖到桌面上,才能修改并保存,然后拖回去

第十八步:测试hosts文件是否正确

ping www.newjb.com
检查解析后的ip是否是Linux的ip

第十九步:在浏览器中输入域名:www.newjb.com

三、基于域名发布多个网站

就是配置虚拟主机,每个<VirtualHost>标签定义了一个虚拟主机,现在配置三个虚拟主机:

虚拟机主机就是用一个Apache发布多个网站
vi /etc/httpd/conf.d/vhost.conf

第一步:创建一个文件

  1. <VirtualHost *:80>:定义一个监听所有IP地址(*)的80端口的虚拟主机。
  2. ServerAdmin 123456@qq.com:设置服务器管理员的邮箱为123456@qq.com。
  3. DocumentRoot "/abcd/web1":设置虚拟主机的根目录为"/abcd/web1"。
  4. ServerName www.web1.com:设置虚拟主机的服务器名为www.web1.com。
  5. DirectoryIndex index.html aaa.html:设置虚拟主机的默认首页为index.html和aaa.html。
  6. <Directory "/abcd/web1">:定义一个目录配置,应用于"/abcd/web1"目录。
  7. Options Indexes FollowSymLinks:设置目录的选项,允许索引和符号链接。
  8. AllowOverride None:禁止覆盖目录的配置。
  9. Require all granted:允许所有用户访问该目录。
  10. </Directory>:结束目录配置。
  11. </VirtualHost>:结束虚拟主机配置。

第二步:修改自己电脑的hosts文件

位置:C:\windows\system32\dirvers\etc\hosts

添加三行:

        192.168.1.96  www.web1.com
        192.168.1.96 www.web2.com
        192.168.1.96 www.web3.com
注意:需要把hosts文件,拖到桌面上,才能修改并保存,然后拖回去

第三步:创建文件

echo "1111111"  >/abcd/web1/a.html

echo "222222"  >/abcd/web2/b.html

echo "333333"  >/abcd/web3/c.html

第四步:浏览器访问

在浏览器中输入域名:www.web1.com/a.html
在浏览器中输入域名:www.web2.com/b.html

在浏览器中输入域名:www.web3.com/c.html

注意:用IP访问的话

会显示第一个虚拟主机

四、Apache的配置文件

 apache的配置文件就是控制apache如何进行工作

如果是yum安装的Apache

配置文件位置:/etc/httpd/conf/httpd.conf

配置文件的内容:

  • DocumentRoot:这个参数是用于指定网站根目录
    • 网站根目录就是存储网页文件的目录
  • ServerName:指定网站域名。
  • DirectoryIndex:指定用户访问网站时候的默认首页文件
    • 用户如果不指定要访问的页面,那么这个参数就会返回一个指定的页面给用户
  • Listen:指定端口号

日志文件:

  • access.log        访问日志
  • error.log            错误日志

如果是编译安装的Apache

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

域名解析流程

第一步:先检查自己电脑的缓存

第二步:检查自己电脑的hosts文件

第三步:检查DNS服务器

判断apache是否在运行

思路一:检察服务的状态

        systemctl status httpd

思路二:检查服务的端口是否启动

        方法一:ss -tuanl | grep 80

        方法二:netstat -anl | grep 80

        方法三:lsof -i :80

思路三:检测进程

        ps -aux | grep 80

        ps -elf | grep 80

查看Apache的进程

ss -tunlp | grep 80

修改apache的端口

所有中间件程序,默认端口都是80

如果是80的话,客户端可以直接通过浏览器进行访问

http://192.168.1.14/a.html

http://192.168.1.14:80/a.html

http://www.newjb.com/a.html

http://www.newjb.com:80/a.html

如果将端口修改为非80的话,例如修改为8023,客户端访问的时候,必须指定端口号
http://192.168.1.14:8023/a.html

http://www.newjb.com/a.html

Centos7 管理服务的格式:

  • systemctl start 服务名                 启动服务
  • systemctl stop 服务名                 关闭服务
  • systemctl restart 服务名              重启服务
  • systemctl enable 服务名             设置服务开机的时候自动启动
  • systemctl disable 服务名             设置服务开机的时候禁止自动启动
  • systemctl status 服务名               查看服务当前的状态

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

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

相关文章

自动驾驶的世界模型:综述

自动驾驶的世界模型&#xff1a;综述 附赠自动驾驶学习资料和量产经验&#xff1a;链接 24年3月澳门大学和夏威夷大学的论文“World Models for Autonomous Driving: An Initial Survey”。 在快速发展的自动驾驶领域&#xff0c;准确预测未来事件并评估其影响的能力对安全性…

C++ 2024-4-2 作业

1.模板类实现顺序栈 #include <iostream> #define MAX 8 using namespace std; template<typename T> class stack {T data[MAX];int top; public:stack():top(-1){}bool empty_stack();bool full_stack();void push_stack(T data);void pop_stack();void show();…

OpenMLDB vs Redis 内存占用量测试报告

1. 背景 OpenMLDB 是一款开源的高性能全内存 SQL 数据库&#xff0c;在时序数据存储、实时特征计算等方面都有很多创新和优化。Redis 是业界最流行的内存存储数据库&#xff0c;广泛应用于缓存等高性能在线场景。虽然二者应用场景不尽相同&#xff0c;但作为都是使用内存作为存…

docker容器之etcd安装

一、etcd介绍 1、etcd是什么 etcd是CoreOS团队于2013年6月发起的开源项目&#xff0c;它的目标是构建一个高可用的分布式键值(key-value)数据库。 2、etcd特点 简单的接口&#xff0c;通过标准的HTTP API进行调用&#xff0c;也可以使用官方提供的 etcdctl 操作存储的数据。…

使用Vue实现CSS过渡和动画

01-初识动画和过渡 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>使用vue实现css过渡和动画&l…

MMU关闭时Cache的缓存策略是怎样的

快速链接: 【精选】ARMv8/ARMv9架构入门到精通-[目录] &#x1f448;&#x1f448;&#x1f448; 在学习MMU章节时&#xff0c;我们发现在页表的entry中&#xff0c;BIT[4:2]指向了MAIR寄存器&#xff0c;该寄存器描述了内存属性&#xff0c;其实就是cache的缓存策略属性&#…

高性价比的挂耳式耳机哪个好用?五大高口碑品牌深度测评严选!

入耳式耳机虽然普及度极高&#xff0c;但其缺点也不容忽视。首先&#xff0c;长时间佩戴可能导致耳朵不适&#xff0c;甚至影响听力健康。其次&#xff0c;入耳式耳机往往因为隔音效果过好&#xff0c;导致用户与周围环境脱节&#xff0c;失去了一定的生活便利性。相比之下&…

《书生·浦语大模型全链路开源开放体系》学习笔记

书生浦语大模型全链路开源开放体系-学习笔记 大模型成为发展通用人工智能的重要途径专用模型通用大模型 书生大模型开源历程InternLM2回归语言建模的本质主要亮点性能全方位提升强大的内生计算能力 从模型到应用典型流程全链条开源开放体系数据数据集获取预训练微调XTuner 评测…

Runes 生态一周要览 ▣ 2024.3.25-3.31|Runes 协议更新 BTC 减半在即

Runes 生态大事摘要 1、Casey 发布了 Runes 协议文档 RUNES HAVE DOCS&#xff0c;Github 代码库更新到 ord 0.17.0 版本&#xff0c;Casey 表示符文是一个“严肃”的代币协议。 2、Casey 公布了第一个硬编码的创世符文「UNCOMMONGOODS」 3、4月7日香港沙龙&#xff5c;聚焦「…

c++的学习之路:9、STL简介与string(1)

一、STL 1、什么是STL STL(standard template libaray-标准模板库)&#xff1a;是C标准库的重要组成部分&#xff0c;不仅是一个可复用的组件库&#xff0c;而且是一个包罗数据结构与算法的软件框架。 也就是说STL就是一个模板&#xff0c;这个模板就是整合了很多库让我们方…

Git常用语句

设置用户名 git config --global user.name "用户名" git config --global user.email "邮箱"查看git用户信息 cat ~/.gitconfig初始化本地库 git initclone指定分支的代码 git clone -b my_branch gitgitlabxxxxxxxxxxxxxxxxxxxxxx.gitpush三件套 gi…

Redis热点Key问题分析与解决

目录 一、问题现象描述 二、什么是热点Key 三、热点Key的危害 3.1 Redis节点负载过高 3.2 Redis集群负载不均 3.3 Redis集群性能下降 3.4 数据不一致 3.5 缓存击穿 四、热点Key产生的原因分析 4.1 热点数据 4.2 业务高峰期 4.3 代码逻辑问题 五、如何检测热点Key …

红队笔记11:pWnOS1.0打靶流程解法2-ssh免密登录-rsa私钥破解-shellshock提权(vulnhub)

目录 开头 1.webmin文件泄露漏洞利用-/etc/passwd/ 2.ssh免密登录-私钥伪随机数碰撞&#xff1a; ssh免密登录原理&#xff1a; prng伪随机数生成ssh rsa 私钥公钥密码库 openssl和openssh的关系&#xff1a; ssh登录报错-解决思路-vv 3.提权-内核提权-shellshock提权 内…

心灵鸡汤人生感悟,简短而有深意的句子

1、你的真心很珍贵&#xff0c;别再不值得的人身上卑微 &#xff0c;爱应该是让你笑的开怀&#xff0c;而不是哭的崩溃。爱必须是温情的依赖&#xff0c;而不是冷漠的伤害。想要找你的人走遍了全世界也能找到你&#xff0c;等到了年华老去也会等着你。 2、大冬天的时候给你送吃…

MySQL安装卸载-Linux

目录 1.概述 2.安装 2.1.上传 2.2.解压 ​​​​​​​2.3.安装 ​​​​​​​2.4.启动服务 ​​​​​​​2.5.查询临时密码 ​​​​​​​2.6.修改临时密码 ​​​​​​​2.7.创建用户 ​​​​​​​2.8.分配权限 ​​​​​​​2.9.重新链接 3.卸载 3.1.停…

【LeetCode热题100】79. 单词搜索(回溯)

一.题目要求 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 单词必须按照字母顺序&#xff0c;通过相邻的单元格内的字母构成&#xff0c;其中“相邻”单元格是那些水平…

VsCode正确解决vue3+Eslint+prettier+Vetur的配置冲突

手把手教你VsCode正确解决vue3EslintprettierVetur的配置冲突 VsCode正确解决vue3EslintprettierVetur的配置冲突Eslint文档查看和修改规则&#xff1a;step1&#xff1a;首先快速浏览下规则简要setp2: ctrlF 搜索你要配置规则的英文名&#xff0c;例如attributesetp3: 修改配置…

2013年认证杯SPSSPRO杯数学建模C题(第二阶段)公路运输业对于国内生产总值的影响分析全过程文档及程序

2013年认证杯SPSSPRO杯数学建模 C题 公路运输业对于国内生产总值的影响分析 原题再现&#xff1a; 交通运输作为国民经济的载体&#xff0c;沟通生产和消费&#xff0c;在经济发展中扮演着极其重要的角色。纵观几百年来交通运输与经济发展的相互关系&#xff0c;生产水平越高…

LangSmith

文章目录 关于 LangSmith创建 API Key 基本代码使用查看控制台 关于 LangSmith 主页&#xff1a;https://www.langchain.com/langsmith文档&#xff1a;https://docs.smith.langchain.com/LangSmith Walkthrough &#xff1a; https://python.langchain.com/docs/langsmith/wa…

用于自动驾驶,无人驾驶领域的IMU六轴陀螺仪传感器:M-G370

用于自动驾驶,无人驾驶的IMU惯导模块六轴陀螺仪传感器:M-G370。自2020年&#xff0c;自动驾驶,无人驾驶已经迎来新突破&#xff0c;自动驾驶汽车作为道路交通体系的一员&#xff0c;要能做到的就是先判断周边是否有障碍物&#xff0c;自身的行驶是否会对其他交通参与成员产生危…