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.9
        http 1.0
        http 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

三、Apache的配置文件

apache的配置文件就是控制apache如何进行工作
配置文件位置:/etc/httpd/conf/httpd.conf

配置文件的内容:

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

域名解析流程

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

第二步:检查自己电脑的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的端口

所有中间件程序,默认端口都是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 服务名 查看服务当前的状态
相关推荐
嘟嘟Listing11 分钟前
设置jenkins时区记录
运维·jenkins
嘟嘟Listing12 分钟前
jenkins docker记录
java·运维·jenkins
伴野星辰13 分钟前
小乌龟TortoiseGit 安装和语言包选择
linux·运维·服务器
枫叶丹419 分钟前
【在Linux世界中追寻伟大的One Piece】多线程(一)
java·linux·运维
残念ing21 分钟前
【Linux】—简单实现一个shell(myshell)
linux·运维·服务器
明月心95228 分钟前
linux mount nfs开机自动挂载远程目录
linux·运维·服务器
Ray550535 分钟前
bridge-multicast-igmpsnooping
linux·服务器·网络
库库的里昂1 小时前
Linux系统Docker部署开源在线协作笔记Trilium Notes与远程访问详细教程
linux·运维·docker·开源
在下不上天1 小时前
flume-将日志采集到hdfs
大数据·linux·运维·hadoop·hdfs·flume
Mango0000002 小时前
香港站群服务器有助于提升网站在搜索引擎中的排名
运维·服务器·搜索引擎