快速上手Linux的Web服务器的部署及优化

一、web服务的配置详解

搭建软件仓库,配置网络环境

web服务的常用种类

  • Nginx
  • Apache
  • openresty
  • 大厂自研

安装nginx:

开启nginx:

火墙放行:

默认发布文件:index.html

Nginx涉及到的配置文件

主配置目录:/etc/nginx

相关配置文件:/etc/nginx/

nginx配置文件内容详解

编辑配置文件: vim /etc/nginx/nginx.conf

实验效果:

访问默认发布文件:

  • 当删除第一个默认发布文件后:

👺可见当第一个默认发布文件不存在时,会发布第二个默认发布文件

web服务器的访问控制

1.基于IP的访问控制

-p应该放在mkdir中,用于如果文件不存在就创建👆

实验效果:

主机192.168.42.129访问:

其它主机访问:

2.基于认证的访问控制

👆当文件为像 .htpasswd这样以 . 开头的文件时,无法直接查找到👇,提高安全性

编辑配置文件:

实验效果

二、web的多站点搭建

1.nginx虚拟主机

默认情况下nginx只能发布一个站点,如果要发布多个站点需要搭建多台nginx来满足,如果这样会浪费太多资源,为解决上述问题,启用nginx的虚拟主机即可,虚拟主机有两种模式,基于IP或者基于域名

2.基于IP的虚拟主机

编辑子配置文件:

实验效果:

3.基于域名的虚拟主机

客户端主机配置DNS:

实验效果:

三、概念

1.用户常用关于web的信息

1.1.什么是www

  • www是world wide web的缩写,及万维网,也就是全球信息广播的意思
  • 通常说的上网就是使用www来查询用户所需要的信息
  • www可以结合文字、图形、影像以及声音等多媒体,超链接的方式将信息以Internet传递到世界各处去
  • 当你连接www网站,该网站会提供一些数据,客户端要使用可以解析这些数据的软件来处理,那就是浏览器

1.2.网址

  • URI:Uniform Resource Identifier统一资源标识,分为URL和URN
  • URN:Uniform Resource Naming,统一资源命名,P2P下载使用的磁力链接是URN的一种实现
  • URL:Uniform Resorce Locator,统一资源定位符用于描述某服务器某特定资源位置
  • 两者区别:而URL提供查找该事物的方法。URN仅用于命名,而不指定地址

1.3.URL组成

URL组成机构如下:

scheme://user:password@host:port/path:params?query#frag

|----------|----|-----------------------------|
| scheme | 方案 | 访问服务器以获取资源时要使用哪种协议 |
| user | 用户 | 某些方案访问资源时需要的用户名 |
| password | 密码 | 用户对应的密码,中间用:分隔 |
| scheme | 方案 | 访问服务器以获取资源时要使用哪种协议 |
| host | 主机 | 资源宿主服务器的主机名或IP地址 |
| port | 端口 | 资源宿主服务器正在监听的端口号,很多方案有默认端口号 |
| path | 路径 | 服务器资源的本地名,由一个/将其与前面的URL组件分隔 |
| params | 参数 | 指定输入的参数,参数为名/值对,多个参数,用;分隔 |
| query | 查询 | 传递参数给程序,如数据库,用?分隔,多个查询用&分隔 |
| frag | 片段 | 一小片或一部分资源的名字,此组件在客户端使用,用#分隔 |

2.HTTP简介

2.1.什么是http

  • HTTP协议:全称为Hyper Text Transfer Protocol(超文本传输协议)
  • 简单来说http就是从服务器传输超文本(html)到本地浏览器的传输协议
  • HTTP协议工作于B/S架构上,浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务端发送请 求(Request)Web服务端根据接收到的请求数据后,向客户端发送响应信息(Response)
  • 面向开发者的 Web 技术 | MDN

2.2.http工作机制

一次http事务包括:

  • http请求:http request
  • http响应: http response

Web资源: web resource

一个网页由多个资源(文件)构成,打开一个页面,通常会有多个资源展示出来,但是每个资源都要单独请 求。因此,一个"Web页面"通常并不是单个资源,而是一组资源的集合

资源类型:

  • 静态文件:无需服务端做出额外处理,服务器端和客户端的文件内容相同
  • 常见文件后缀:.html,.txt,.jpg,.js,.css,mp3,avi
  • 动态文件:服务端执行程序,返回执行的结果,服务器端和客户端的文件内容不相同
  • 常见文件后缀:.php,jsp,asp
2.2.1.web中常用的语言介绍

html语言 超文本标记语言

css 层叠样式表 表述网站的风格

js实现html和css实现不了的功能比如动画效果

2.2.2.mine(Multipurpose Internet Mail Extensions)多用途因特网邮件扩展
  • 它设计的最初目的是为了在发送电子邮件时附加多媒体数据,让邮件客户程序能根据其类型进行处 理
  • 为了支持多媒体数据类型,HTTP协议中就使用了附加在文档之前的MIME数据类型信息来标识数据类型
  • 其主要功能是让服务器将它们发送的多媒体数据的类型告诉浏览器
  • 服务器将MIME标志符放入传送的数据中来告诉浏览器使用哪种插件读取相关文件
  • MIME类型存在于HTTP响应报文的响应头部信息里,它是一种文本标记
  • MIME格式: type/subtype 文件类型后缀(html txt jpg png... ...)

2.3.http访问请求完整过程

1.建立连接

TCP的3次握手建立链接,向服务器发送http请求,服务器拒绝或允许

2.接受请求

接受客户端请求报文对某个资源的一次请求过程web响应访问模型

a.单进程I/O模型:启动一个进程处理用户请求,而且一次只处理一个,多个请求被串行响应

b.多进程I/O模型:并行启动多个进程,每个进程响应一个连接请求

c.复用I/O结构:启动一个进程,同时响应N个连接请求

d.复用的多进程I/O模型:启动M个进程,每个进程响应N个连接请求,同时接收M*N个请求

3.处理请求:

服务器对请求报文进行解析,并获取请求的资源及请求方法等相关信息,根据方法,资源,首部和可选 的主体部分对请求进行处理常用请求Method: GET、POST、HEAD、PUT、DELETE、TRACE、OPTIONS

4.访问资源:

服务器获取请求报文中请求的资源web服务器,即存放了web资源的服务器,负责向请求者提供对方请求 的静态资源,或动态运行后生成的资源

5.构建响应报文:

一旦Web服务器识别除了资源,就执行请求方法中描述的动作,并返回响应报文。响应报文中包含有响 应状态码、响应首部,如果生成了响应主体的话,还包括响应主体

响应实体:如果事务处理产生了响应主体,就将内容放在响应报文中回送过去。响应报文中通常包括:

描述了响应主体MIME类型的Content-Type首部

描述了响应主体长度的Content-Length

实际报文的主体内容

  • URL重定向:web服务构建的响应并非客户端请求的资源,而是资源另外一个访问路径
  • MIME类型:Web服务器要负责确定响应主体的MIME类型。多种配置服务器的方法可将MIME类型 与资源管理起来

6.发送响应报文

Web服务器通过连接发送数据时也会面临与接收数据一样的问题。服务器可能有很多条到各个客户端的 连接,有些是空闲的,有些在向服务器发送数据,还有一些在向客户端回送响应数据。服务器要记录连 接的状态,还要特别注意对持久连接的处理。对非持久连接而言,服务器应该在发送了整条报文之后, 关闭自己这一端的连接。对持久连接来说,连接可能仍保持打开状态,在这种情况下,服务器要正确地 计算Content-Length首部,不然客户端就无法知道响应什么时候结束

2.4.http协议报文头部结构

2.4.1.请求报文

请求情报文由三部分组成即:开始行、首部行、是体主体

开始行:请求方法 url 版本 CRLF

首部行通常用键值表示

空格

实体主题数据,一般在post动作中可以提看到

开始行中的请求方法:

|---------|------------------------------------------|
| 方法 | 描述 |
| GET | 请求指定页面信息,并返回实体主体 |
| HEAD | 类似get要求,只不过返回相应中没有主题内容,用户获取报头 |
| POST | 向指定资源提交数据请求,数据包含在请求中,此请求可能会生成新的资源或修改已有资源 |
| PUT | 从客户端向服务端传送数据取代指定的文档内容 |
| DELETE | 请求服务器删除指定页面 |
| CONNECT | HTTP/1.1协议中预留给弄够将改为管道方式的代理服务器 |
| OPTIONS | 允许客户端查看服务器的性能 |
| TRACE | 回显服务器收到的请求,用于测试和诊断 |

2.4.2.响应报文

求情报文由三部分组成即:开始行、首部行、是体主体

开始行:http版本 状态码 短语 CRLF

首部行通常用键值表示

空格

实体主题数据,即获取内容

2.5.状态代码

状态码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值

|---------|--------|------------------|
| 状态码 | 含义 | 详解 |
| 1xx | 指示信息 | 表示请求已接收,继续处理 |
| 2xx | 成功 | 表示请求已被成功接收、理解、接受 |
| 3xx | 重定向 | 要完成请求必须进行更进一步的操作 |
| 4xx | 客户端错误 | 请求有语法错误或请求无法实现 |
| 5xx | 服务器端错误 | 服务器未能实现合法的请求 |

常见状态代码、状态描述的说明如下:

|---------------------------|------------------------------------------|
| 状态码 | 含义 |
| 200 OK | 客户端请求成功 |
| 400 Bad Request | 客户端请求有语法错误,不能被服务器所理解 |
| 401 Unauthorized | 请求未经授权,这个状态代码必须和 WWW-Authenticate报头域一起使用 |
| 403 Forbidden | 服务器收到请求,但是拒绝提供服务 |
| 404 Not Found | 请求资源不存在,举个例子:输入了错误的URL |
| 500 Internal Server Error | 服务器发生不可预期的错误 |
| 503 Server Unavailable | 服务器当前不能处理客户端的请求,一段时间后可能恢复正常 |

相关推荐
老秦包你会8 分钟前
Linux课程五课---Linux进程认识1
linux·运维·服务器
等猪的风21 分钟前
openwrt作旁路由时的几个常见问题 openwrt作为旁路由配置zerotier 图文讲解
运维·服务器·网络
互联网搬砖老肖25 分钟前
运维打铁:域名详解及常见问题解决
运维·github
浩浩测试一下25 分钟前
网络安全实战指南:从安全巡检到权限维持的应急响应与木马查杀全(命令查收表)
linux·安全·web安全·ubuntu·网络安全·负载均衡·安全架构
千码君201638 分钟前
什么是数据链路层的CRC检测以及为什么要放到帧尾?
服务器·网络·网络协议·以太网·奇偶校验·crc检测·以太网帧
Qiuner1 小时前
软件设计师速通其一:计算机内部数据表示
服务器·数据库·信号处理
我想吃余1 小时前
Linux学习笔记(一):Linux下的基本指令
linux·笔记·学习
LaughingZhu1 小时前
PH热榜 | 2025-04-24
运维·经验分享·搜索引擎·产品运营·jenkins
刘某的Cloud1 小时前
openstack迁移虚机rbd报错,删除异常rbd
linux·运维·openstack·nova·rbd
啊吧怪不啊吧1 小时前
Linux权限概念讲解
linux·运维·服务器