当前位置: 首页 > news >正文

Linux复习笔记(三) 网络服务配置(web)

 遇到的问题,都有解决方案,希望我的博客能为你提供一点帮助。

二、网络服务配置

2.3 web服务配置

2.3.1通信基础:HTTP协议与C/S架构(了解)

  1. ​HTTP协议的核心作用​
    Web服务基于HTTP/HTTPS协议实现客户端(浏览器)与服务器的通信。HTTP协议定义了两类报文:

    • ​请求报文​​:包含请求行(方法如GET/POST、URL路径、协议版本)、请求头(如User-Agent、Cookie)、请求体(如表单数据)
    • ​响应报文​​:包含状态行(如200 OK、404 Not Found)、响应头(如Content-Type)、响应体(如HTML页面或JSON数据)
  2. ​无状态性与状态管理​
    HTTP协议本身无状态,但通过Cookie(客户端存储)和Session(服务器端存储)实现会话状态跟踪。例如,用户登录后,服务器通过Set-Cookie头部下发Session ID,客户端后续请求自动携带该ID以保持登录状态。

2.3.2web 服务基础概览(了解)

  1. ​基础架构​
    Web服务基于​​C/S(客户端-服务器)架构​​,服务器负责管理资源、响应客户端请求,客户端负责接收并展示内容。

  2. ​服务分类(掌握)​

    • ​静态Web服务​​:内容固定,不随用户请求变化。
    • ​动态Web服务​​:内容实时生成,支持交互性(如用户登录、数据库查询)。
  3. ​主流动态语言​

    语言特点部署环境
    ASP/ASP.net微软开发,集成Windows生态,适合企业级应用。通常部署于Windows服务器。
    PHP开源跨平台,语法融合C/Java/Perl,适合快速开发轻量级应用。支持Linux/Windows,需安装PHP环境。
    JSPSun公司推出,基于Java,可结合Servlet/JavaBean实现复杂功能。需安装JSP服务包(如Tomcat),兼容跨平台。
  4. ​服务器环境依赖​

    • ​Linux系统​​:天然支持PHP,需额外安装JSP服务包(如Tomcat)。
    • ​Windows系统​​:默认支持ASP/ASP.net,也可部署PHP/JSP但需配置环境。

2.3.3 web 服务的工作流程/原理(熟悉)

 

简单来说,web服务器就是基于http协议一个线上仓库, 可以接收和响应客户资源请求。

具体流程: 

  • 用户点击浏览器访问网页,浏览器获取访问网页的事件。
  • 客户端与浏览器建立TCP连接。
  • 浏览器将用户的事件按照HTTP协议格式打包为一个压缩包,添加HTTP协议包头后形成字节流,存入协议缓冲区。
  • 在成功建立TCP连接后,浏览器将数据报推送到网络中,最终递交到Web服务器。
  • 服务器接收到数据报后,以同样的格式进行解析,从而得出客户端所需要的资源,最后服务器进行分类处理,或是提供某一文件,或者处理相关数据。
  • 将结果装入缓冲区,按照HTTP协议格式对数据进行打包,并对客户端发送应答,最终数据包递交到客户端。
  • 客户端接收到数据报后,以HTTP协议格式进行解包并解析数据,最后在浏览器中展示结果。

 2.3.4 URL​​格式解析(掌握)

格式:  协议类型://主机名[:端口号]/路径/文件名

要求:能够看懂每个字段的含义,比如给一个URL能知道每一个表示的是啥。

完整URL​​:

https://www.example.com:8080/docs/report.pdf?download=true&version=2#page=3

​协议(Scheme)​​:https

  • 作用:指定使用​​加密的HTTP协议​​,确保数据传输安全
  • 扩展:若改为ftp则表示文件传输协议,适用于下载场景

​主机名(Host)​​:www.example.com

  • 作用:标识资源所在的服务器域名,浏览器通过DNS解析为IP地址(如192.0.2.1
  • 扩展:可包含登录凭证(如admin:pass@host.com),但实际因安全风险较少使用

​端口(Port)​​::8080

  • 作用:指定服务器监听的非默认端口(HTTP默认80,HTTPS默认443),常用于测试或特殊服务
  • 省略情况:若省略则自动使用协议默认端口。

​路径(Path)​​:/docs/report.pdf

  • 作用:指向服务器上​​具体资源的物理路径​​,层级由/分隔。本例表示服务器根目录下docs文件夹中的PDF文件
  • 扩展:若路径以/结尾(如/docs/),通常表示目录而非文件

​查询参数(Query)​​:?download=true&version=2

  • 作用:向服务器传递动态参数,用于过滤或定制资源。本例中:
  • download=true:触发文件下载而非在线预览;
  • version=2:请求第二版文档
  • 格式规则:参数键值对用=连接,多参数以&分隔。

​片段(Fragment)​​:#page=3

  • 作用:定位资源内部特定位置,如PDF第3页或网页锚点。​​仅客户端生效​​,不发送至服务器

 2.3.5 Apache(开源的web服务器软件)

2.3.5.1 Apache作用:处理HTTP请求与内容服务(了解)
  1. ​响应HTTP请求​
    Apache的核心作用是接收并处理客户端的HTTP请求(如GET/POST),返回HTML页面、图片等静态资源,或通过集成PHP、Python等脚本语言生成动态内容。例如,用户访问电商网站时,Apache可调用后端程序实时生成商品列表页面。

  2. ​支持静态与动态内容​

    • ​静态资源​​:直接托管HTML、CSS、JavaScript等文件。
    • ​动态内容​​:通过模块(如mod_php、mod_perl)调用PHP、Python等解释器处理数据库交互、用户登录等动态逻辑
2.3.5.2Apache的httpd服务程序的主要配置文件及存放位置
配置文件名称路径
服务目录/etc/httpd
主配置文件/etc/httpd/conf/httpd.conf
默认站点主目录/var/www/html
访问日志/var/log/httpd/access_log
错误日志/var/log/httpd/error_log
2.3.5.3常用文件参数
参数解析
ServerRootApache 服务运行目录
Listen监听的端口
User运行服务的用户
Group运行服务的组
ServerAdmin管理员邮箱
DocumentRoot网站根目录
<Directory /rpath> options </Directory>网站对应目录的权限
ErrorLog错误日志
Alias /wpath "/rpath"创建路径别名
参数解析
LogLevel警告级别
CustomLog默认访问日志格式
DirectoryIndex默认的索引文件
Timeout网页超时时间
Serveralias网站别名
<Directory /rpath> options </Directory>内配置参数 (了解)
访问控制选项解析
Options设置特定目录中的服务器特性,具体参数选项的取值见下表 。
AllowOverride设置访问控制文件.htaccess。
Require设置 Apache 缺省的访问权限
参数解析
Indexes允许目录浏览,当访问的目录中没有 DirectoryIndex 参数指定的网页文件时,会列出目录中的目录清单。
Multiviews允许内容协商的多重视图。
All支持除 Multiviews 以外的所有选项,无 Options 语句,默认为 All
ExecCGI允许在该目录下执行 CGI 脚本
FollowSysmLinks可以允许在该目录下使用符号链接,以访问其他目录
Includes允许服务器端使用 SSL 技术
IncludesNoExec允许服务端使用 SSL 技术,但禁止执行 CGI 脚本
SymLinksIfOwnerMatch目录文件与目录属于同一用户时支持符号链接
常见问题(掌握)
问题答案
如何更换监听端口(listen)找到/etc/httpd/conf/httpd.conf中的Listen 80,将 80 修改为其他端口号,如 8080
默认的网页存储目录是什么DocumentRoot "/var/www/html" ,可修改为其他路径
网页首页主页的名称和类型是什么名称如 index,常见类型有 html、php、asp ;默认首页文件设置为DirectoryIndex index.html index.php index.asp,系统按顺序查找,默认只有index.html,可添加多个
2.3.5.4 实现基于Apache的静态网站发布(掌握)

静态网页URL:http://localhost(这个URL应该由自己的web服务器的地址)

#安装
yum -y install httpd
#写入静态网页内容
sudo echo "hello world!" > /var/www/html/incdex.html
#临时关闭SELinux
sudo setenforce 0
#启动
sudo systemctl start httpd
#访问测试 或者直接在浏览器上 输入http://localhost
curl http://localhost 
#结果应该是hello world!

 

基于端口的: 

静态网页URL:http://localhost:8080

#添加虚拟主机配置
sudo vim /ect/httpd/conf.d/8080.conf

配置文件如下: 

listen 8080

  • 含义:让 Apache 服务器监听 8080 端口 ,用于接收发送到该端口的网络请求。

  • 作用:指定了服务器对外提供服务的端口,客户端需通过该端口与服务器通信。

<VirtualHost localhost:8080> 与 </VirtualHost>

  • 含义:这是一对标签,用于定义一个虚拟主机配置块。其中 localhost:8080 表示该虚拟主机监听本地回环地址 localhost (等同于 127.0.0.1 )上的 8080 端口 。

  • 作用:通过虚拟主机技术,可在一台物理服务器上运行多个网站或服务,每个虚拟主机可配置不同的域名、端口等,实现资源的灵活分配与管理。

DocumentRoot /var/www/8080

  • 含义:设置该虚拟主机对应的网站根目录为 /var/www/8080 。当客户端请求该虚拟主机下的网页资源时,Apache 会从这个目录中查找对应的文件。

  • 作用:明确了网站文件的存放位置,是服务器定位和提供网页内容的基础。

ServerName localhost:8080

  • 含义:指定该虚拟主机的名称,这里设置为 localhost:8080 。它主要用于在多个虚拟主机并存时,帮助 Apache 准确识别客户端请求应匹配到哪个虚拟主机。

  • 作用:在基于名称的虚拟主机配置场景中,是区分不同虚拟主机的关键标识之一 。当客户端请求中携带的域名或主机名与 ServerName 匹配时,请求会被路由到对应的虚拟主机处理。

#创建虚拟主机对应的根目录
sudo mkdir /var/www/8080
#写入文件内容
sudo echo "This is 8080" > /var/www/8080/index.html
#如果权限不够记得修改权限,这里简单设成777
sudo chmod 777 /var/www/8080/index.html 
#重启服务
sudo systemctl restart httpd
#测试
curl http://localhost:8080

结果如下: 

 

相关文章:

  • python标准库--itertools - 迭代器工具在算法比赛的应用
  • DVWA靶场保姆级通关教程--08SQL盲注(上)
  • Linux常用命令(持续完善)
  • 深入解读tcpdump:原理、数据结构与操作手册
  • Ollama+OpenWebUI+docker完整版部署,附带软件下载链接,配置+中文汉化+docker源,适合内网部署,可以局域网使用
  • 1.6 偏导数
  • 打破产品思维--被讨厌的勇气--实战5
  • 兴业拍卖周报|25年第19周,北京拍卖房市场总成交价破11亿
  • A Survey of Learning from Rewards:从训练到应用的全面剖析
  • C语言-第一章节---常量
  • EMQX本地部署
  • 软件测试——开发模型
  • 批量重命名bat
  • 【PXIE301-211】基于PXIE总线的16路并行LVDS数据采集、1路光纤数据收发处理平台
  • 制作一款打飞机游戏45:简单攻击
  • 处理 Websocket 超时问题
  • 密码学--仿射密码
  • 5月12日信息差
  • Matlab 模糊控制平行侧边自动泊车
  • 动态IP技术赋能业务创新:解锁企业数字化转型新维度
  • 中拉论坛部长级会议为何悬挂海地和圣卢西亚的国旗?外交部回应
  • 习近平出席中拉论坛第四届部长级会议开幕式并发表主旨讲话
  • 汉斯·季默:不会指挥的声音工程师终成音乐“大神”
  • 中华人民共和国和俄罗斯联邦在纪念中国人民抗日战争、苏联伟大卫国战争胜利和联合国成立80周年之际关于进一步深化中俄新时代全面战略协作伙伴关系的联合声明
  • “上海之帆”巡展在日本大阪开幕,松江区组织企业集体出展
  • 九家企业与上海静安集中签约,投资额超10亿元