web技术与Nginx网站服务

目录

一. web基础

1. 域名概念

2. Hosts 文件

3. DNS

4. 域名注册

5. 网页与 HTML

二. 网页概述

1.  HTML 概述

2. HTML 基本标签

3. 网站和主页 

三. 静态网页与动态网页

1. 静态网页

2. 动态网页

3. 动态网页语言

四. HTTP 协议 

1. HTTP 协议概述

2. HTTP 方法

3. HTTP 状态码

4. HTTP 请求流程分析 

五. Nginx 服务

1. Nginx 服务基础

2. Nginx 1.24 安装

3. Nginx 的运行控制 

4. 配置文件 nginx.conf 

5. 访问状态统计 


 

一. web基础

1. 域名概念

网络是基于 TCP/IP 协议进行通信和连接的,每一台主机都有一个唯一的标识(固 定的 IP地址),用以区别在网络上成千上万个用户和计算机。网络在区分所有与之相 连的网络和主机时,均采用一种唯一、通用的地址格式,即每一个与网络相连接的计算机和服务器都被指派一个独一无二的地址。为了保证网络上每台计算机的IP地址的唯 一性,用户必须向特定机构申请注册,分配IP地址。网络中的地址方案分为两套:IP地址系统和域名地址系统。这两套地址系统其实是一一对应的关系。IP地址用二进制数 来表示,每个 IP 地址长32 比特,由 4 个小于 256 的数字组成,数字之间用点间隔,例如 100.10.0.1 表示一个 IP 地址。由于 IP地址是数字标识,使用时难以记忆和书写,因此在 IP 地址的基础上又发展出一种符号化的地址方案,来代替数字型的 IP地址。每 一个符号化的地址都与特定的IP地址对应,这样网络上的资源访问起来就容易得多了。 这个与网络上的数字型 IP地址相对应的字符型地址,就被称为域名。通俗的说,域名就相当于一个家庭的门牌号码,别人通过这个号码可以很容易地找到你。

(1) 域名的结构

以一个常见的域名为例说明其结构。图1.1中,www.aliyun.com 网址是由二部分组 成,标号“aliyun”是这个域名的主体,而最后的标号“com”则是该域名的后缀,代表的这 是一个com 国际域名,是顶级域名,而前面的 www 是主机名。

DNS 规定,域名中的标号都由英文字母和数字组成,每一个标号不超过 63个字符,也不区分大小写字母。标号中除连字符(-)外不能使用其他的标点符号。级别最低的域名写在最左边,而级别最高的域名写在最右边。由多个标号组成的完整域名总共不超 过 255 个字符。一些国家也纷纷开发使用采用本民族语言构成的域名,如德语,法语等。中国也开 始使用中文域名,但可以预计的是,在中国国内今后相当长的时期内,以英语为基础的域名(即英文域名)仍然是主流。

2. Hosts 文件

Hosts 文件是一个用于存储计算机网络中节点信息的文件,它可以将主机名映射到 相应的 IP 地址,实现 DNS 的功能,它可以由计算机的用户进行修改控制。

(1) Hosts 文件的作用

在网络上访问网站,要首先通过 DNS 服务器把要访问的域名解析成 IP 地址后计 算机才能对这个网络域名作网站进行访问。

在网络上访问网站,要首先通过 DNS 服务器把要访问的域名解析成 IP 地址后,计算机才能对这个网络域名作网站进行访问。

对于每个域名请求,如果都要等待域名服务器解析后返回 IP 信息,那么访问网络 的效率就会降低,因为 DNS 做域名解析和返回 IP 都需要时间。为了提高对经常访问的 网络域名的解析效率,可以通过利用在 Hosts 文件中建立域名和IP的映射关系来达到 目的。根据系统规定,在进行DNS 请求以前,系统会先检查自己的 Hosts 文件中是否 有这个网络域名映射关系。如果有则调用这个IP 地址映射,如果没有,再向已知的 DNS 服务器提出域名解析,即 Hosts 的请求级别比 DNS 高。

(2) 修改 Hosts 文件

Windows 系统中 Hosts 文件存储在目录 c:\windows\system32\drivers\etc下面,用 记事本可以对其进行修改

0penEuler 系统中 Hosts 文件存储在目录/etc/目录下面,用 vim /etc/hosts 可以对其进行修改,如在文件中加上以下代码。

 

当访问 www.baidu.com 时,发现本机 hosts 文件中有映射的 IP 地址,则访问这个 IP 地址。

3. DNS

在互联网上域名与 IP 地址之间是一一对应的,域名虽然便于人们记忆,但机器之 间只能互相认识 IP 地址,它们之间的转换工作称为域名解析,域名解析要由专门的域 名解析系统来完成,DNS 就是进行域名解析的系统。主机名到IP 地址的映射有两种方式:

静态映射:每台设备上都配置主机到IP地址的映射,各设备独立维护自己的映射 表,而且只供本设备使用

动态映射:建立一套域名解析系统(DNS),只在专门的DNS服务器上配置主机 到IP 地址的映射,网络上需要使用主机名通信的设备,首先需要到 DNS服务器查询主机所对应的 IP 地址。

通过主机名,最终得到该主机名对应的 IP地址的过程叫做域名解析(或主机名解 析)。在解析域名时,可以首先采用静态域名解析的方法。如果静态域名解析不成功,再采用动态域名解析的方法。可以将一些常用的域名放入静态域名解析表中,这样可以 大大提高域名解析效率。在 Windows 命令行模式中输入网络査询命令 nslookup www.baidu.com,可以查询 到域名对应的 IP 地址。

4. 域名注册

域名注册是 Internet 中用于解决地址对应问题的一种方法。域名注册遵循先申请先注册原则,管理机构对申请人提出的域名是否违反了第三方的权利不进行任何实质审 查。每个域名都是独一无二的,不可重复的。

域名注册的所有者都是以域名注册提交人填写域名订单的信息为准的,成功24 小时后,即可在国际(ICANN)、国内(CNNIC)管理机构査询 whois 信息(域名所有 者等信息)。

域名注册步骤:

(1)准备申请资料:com 域名无需提供身份证、营业执照等资料,cn 域名已开放 个人申请注册,所以申请则需要提供身份证或企业营业执照;

(2)寻找域名注册网站:由于.com、.cn 域名等不同后缀均属于不同注册管理机构 所管理,如要注册不同后缀域名则需要从注册管理机构寻找经过其授权的顶级域名注册服务机构。如 com 域名的管理机构为 ICANN,cn 域名的管理机构为CNNIC(中国互 联网络信息中心)。若注册商已经通过ICANN、CNNIC双重认证,则无需分别到其他 注册服务机构申请域名;

(3)查询域名:在域名注册查询网站注册用户名成功后并查询域名,选择要注册的 域名,并点击注册;

(4)正式申请:查到想要注册的域名,并且确认域名为可申请的状态后,提交注册, 并缴纳年费;

(5)申请成功:正式申请成功后,即可开始进入DNS 解析管理、设置解析记录等 操作。

5. 网页与 HTML

网页是构成网站的基本元素,是承载各种网站应用的平台。通俗地说,网站就是由 网页组成的。如果只有域名和虚拟主机而没有制作任何网页,那么客户仍旧无法访问这 个网站。因为网页是由 HTML(超文本标记语言)编写的。

二. 网页概述

网页是一个文件,他存放在世界某个角落的某一部计算机中,而这部计算机必须是 与互联网相连的。网页经由网址(URL)来识别与存取,是互联网中的一“页”。

网页可以包括如下内容:

  • 文本:文本是网页上最重要的信息载体与交流工具,网页中的主要信息一般都以文 本形式为主。
  • 图像:图像元素在网页中具有提供信息并展示直观形象的作用。
  • 静态图像:在页面中可能是图片或矢量图形。图片格式通常为GIF、JPEG 或 PNG 等;矢量格式通常为 SVG 或 Flash。
  • 动画图像:通常动画为GIF和 SVG。
  • Flash 动画:动画在网页中的作用是有效地吸引访问者更多的注意声音:声音是多媒体和视频网页重要的组成部分。
  • 视频:视频文件的采用使网页效果更加精彩且富有动感
  • 表格:表格是在网页中用来控制页面信息的布局方式。
  • 导航栏:导航栏在网页中是一组超链接,其连接的目的端是网页中重要的
  • 页面。
  • 交互式表单:表单在网页中通常用来联接数据库并接受访问用户在浏览器端输入的数据,利用数据库为客户端与服务器端提供更多的互动。

网页相关概念:

  • 域名:是浏览网页时输入的网址。
  • HTTP:用来传输网页的通信协议,使用浏览器访问网址时,在域名前面要加上 http:// ,表示使用 http 协议传输网页。URL:是一种万维网寻址系统,表示网络上资源的位置路径,HTML:是编写网页的超文本标记语言。
  • 超链接:具备将网站中不同网页链接起来的功能。发布:将制作好的网页上传到服务器供用户访问的过程

1.  HTML 概述

HTML, 叫做超文本标记语言,是一种规范,也是一种标准,它通过标记符号来标记 要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标 记符,可以告诉浏览器如何显示其中的内容。如:文字如何处理,画面如何安排,图片 如何显示等。浏览器按顺序阅读网页文件,然后根据标记符解释和显示其标记的内容,对书写出错的标记将不指出其错误,且不停止其解释执行过程,开发者只能通过显示效 果来分析出错原因和出错部位。但需要注意的是,不同的浏览器,对同一标记符可能会有不完全相同的解释,因而可能会有不同的显示效果。

HTML 文件可以使用任何能够生成 txt 文件的文本编辑器来编辑,生成超文本标记 语言文件,只用修改文件名后缀为”.html”或“.htm” 即可。

2. HTML 基本标签

(1) HTML 语法规则

HTML 标签采用双标记符的形式,前后标记符对应,分别表示标记开始和结束,标 记符中间的内容被标签描述。前标记符由“<XXX>”表示,结尾标记符多了一个“/”,由 “</XXX〉”表示。

(2) HTML 文件结构

HTML 文件最外层由<html></htm>表示,说明该文件是用 HTML 语言描述的。在它里面是并列的头标签(<head>)和内容标签(<body>),最基本的 HTML 文件结构

<html>
<head>网页的内容描述信息<head>
<body>网页显示的内容</body>
</html>

常用的头标签中的标签:

标签描述
<title>定义了文档的标题
<base>定义了页面链接标签的默认链接地址
<link>定义了一个文档和外部资源之间的关系
<meta>定义了 HTML 文档中的元数据
<script>定义了客户端的脚本文件
<style>定义了 HTM 文档的样式文件

内容标签中常用的标签:

标签描述
<table>定义一个表格
<tr>定义了表格中的一行
<td>定义了表格中某一行的一列
<a>定义了一个超链接
<br>定义了换行
<font>定义了字体

3. 网站和主页 

网站是由网页组成的,包含多个网页页面,具有独立域名、独立存放空间的内容集 合,这些内容可能是网页,也可能是程序或其他文件。

当一个网站服务器收到一台电脑上网络浏览器的消息连接请求时,便会向这台计算 机发送这个文档。当在浏览器的地址栏输入域名,而未指向特定目录或文件时,通常浏览器会打开网站的首页。网站首页往往会被编辑得易于了解该网站提供的信息,并引导 五联网用户浏览网站其他部分的内容。这部分内容一般被认为是一个目录性质的内容

三. 静态网页与动态网页

1. 静态网页

在网站设计中,纯粹 HTML格式的网页通常被称为“静态网页”,静态网页是标准的 HTML 文件,它的文件扩展名是.htm、.html 。静态网页是网站建设的基础,早期的网 站一般都是由静态网页制作的。静态网页也可以出现各种动态的效果,如.GIF 格式的动画、FLASH 、滚动字幕等。这些“动态效果” 只是视觉上的,与下面将要介绍的动态网页 是不同的概念。

2. 动态网页

所谓的动态网页,是指跟静态网页相对的一种网页编程技术。静态网页,随着 HTML, 代码的生成,页面的内容和显示效果就基本上不会发生变化了--除非是修改页面代码。而动态网页则不然,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。动态网页URL的后缀不是.htm、.html、.shtml、.xml 等静态网页的常见网页制作格式,而是以aspx、.asp、.jsp、.php、.perl、cgi 等形式为后缀,并且在动态网页网址中有一个 标志性的符号--“?”动态网页是基本的 html 语法规范与 Java 、PHP、C#等高级程序设计语言、数据库 编程等多种技术的融合,以期实现对网站内容和风格的高效、动态和交互式的管理。因 此,从这个意义上来讲,凡是结合了 HTML 以外的高级程序设计语言和数据库技术进行 的网页编程技术生成的网页都是动态网页。

3. 动态网页语言

早期的动态网页主要采用通用网关接口CGI(Common Gateway Interface,技术,虽然 CGI 技术已经发展成熟而且功能强大,但由于编程困难、效率低下修改复杂,所以有逐渐被新技术取代的趋势。

常用的动态网页编程语言:

  • PHP 即 Hypertext Preprocessor(超文本预处理器),它是当今 Internet 上最为火 热的脚本语言,其语法借鉴了C、Java、PERL 等语言,但只需要很少的编程知识 你就能使用 PHP 建立一个真正交互的 web 站点。
  • JSP 即 Java Server Pages(Java 服务器页面),它是由 Sun Microsystem 公司于1999 年6月推出的新技术,是基于 Java Servlet 以及整个,ava 体系的 Web 开 发技术。
  • Python 是一种面向对象、跨平台的动态类计算机程序设计语言,最初被设计用于 编写自动化脚本(she11),随着版本的不断更新和语言新功能的添加,越来越多被用 于独立的大型项目开发。
  • Ruby 是一种简单快捷的面向对象(面向对象程序设计)脚本语言,在 20世纪 90 年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守 GPL, 协议和Ruby License.

它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada 以及 Lisp 语言。

四. HTTP 协议 

超文本传输协议(HTTP ,HyperText Transfer Protocol)是互联网上应用最广泛的一种网络协议。所有的网页文件都必须遵守这个标准。设计 HTTP最初的目的是为 了提供一种发布和接收 HTML 页面的方法。

1. HTTP 协议概述

HTTP 协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求 的方法、URL、协议版本、以及包含请求修饰符、客户信息和内容的类似于 MIME 的消 息结构。服务器以一个状态行作为响应,响应的内容包括消息协议的版本,成功或者错 误编码加上服务器信息、实体元信息以及可能的实体内谷。

HTTP 已经演化出了很多版本,它们中的大部分都是向下兼容的。

(1)HTTP/0.9 已过时。只接受 GET 一种请求方法,没有在通讯中指定版本号,且不支持请求头。由于该版本不支持POST 方法,所以客户端无法向服务器传递太多 信息。
(2)HTTP/ 1.0 这是第一个在通讯中指定版本号的 HTTP 协议版本,至今仍被广泛 采用,特别是在代理服务器中。
(3)HTTP/1.1 当前版本。持久连接被默认采用,并能很好地配合代理服务器工作。还支持以管道方式同时发送多个请求,以便降低线路负载,提高传输速度。

2. HTTP 方法

HTTP 支持几种不同的请求命令,这些命令被称为 HTTP 方法(HTTP method)。每条 HTTP 请求报文都包含一个方法,告诉服务器要执行什么动作,包括:获取一个页 面,运行一个网关程序,删除一个文件等。

HTTP 方法描述
GET请求获取 Request-URI 所标识的资源
PUT请求服务器存储一个资源,并用Request-URI作为其标识
DELETE请求服务器删除 Request-URI 所标识的资源
POST在 Request-URI 所标识的资源后附加新的数据
HEAD请求获取由 Request-URI 所标识的资源的响应消息报头

GET 方法采用的是 URL 后缀的形式,比如 http://www.test.com/a.php?Id=123 就是一个 GET 请求,服务器接收后可以解析出 Id=123。而 POST 方法不需要在 URL 中 显示”?Id=123”,参数作为内容进行了隐藏的提交。因此,表单类或者有用户名、密码 等内容提交时建议使用POST 方法。

GET 方法在 URL 上显示参数,而 URL 是有长度限制,故不适合提交过大的数据。 GET 方法可以被浏览器缓存,当请求已经被请求过一次的 URL 时,浏览器不需要向服 务器再次发出请求,直接在本地缓存中获得页面。

 GET 和 POST方法对比:

 GET 方法POST 方法
对数据长度的限制URL的长度是受限制的(URL,的最大长度是2048 个字符)无限制
缓存能被缓存不能缓存
安全性与POST 相比,GET 的安全性较差,因为所发送的数据是 URL的一部分。在发送密码或其他敏感信息时绝不要使用GETPOST 比GET 更安全,因为参数不会被保存在浏览器历史或Web 服务器日志中
历史参数保留在浏览器历史中参数不会保存在浏览器历史中
后退按钮/刷新无害数据会被重新提交,浏览器应 该告知用户数据会被重新提交
书签可收藏为书签不可收藏为书签

3. HTTP 状态码

HTTP 状态码(HTTP Status Code )是用以表示网页服务器 HTTP 响应状态的 3 位数字代码,当浏览器请求某一 URL 时,服务器根据处理情况返回相应的处理状态。

HTTP 状态码可以分为五大类

状态码首位已定义范国分类
1xx100-101信息提示
2xx200-206成功
3xx300-305重定向
4xx400-415客户端错误
5xx500-505服务器错误

生产环境常见的状态码

消息描述
200 OK请求成功(其后是对GET和POST请求的应文档)
301 Moved Permanently请求的永久页面跳转
403 Forbidden禁止访问该页面
404 Not Found服务器无法找到被请求的页面
500 Internal Server Error内部服务器错误
502 Bad Gateway无效网关
503 Service Unavailable当前服务不可用
504 Gateway Timeout网关请求超时

4. HTTP 请求流程分析 

用户在浏览器输入 URL 访问时,发起 HTTP 请求报文,请求中包括请求行、请求 头、请求体,服务器收到请求后返回响应报文,包括状态行、响应头、响应体。

(1) 请求报文 

  • 请求行:请求行由请求方法、URL 以及协议版本三部分组成。
  • 请求头:请求头为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,名 和值之间使用冒号分隔。
  • 空行:请求头部的最后会有一个空行,表示请求头部结束,接下来为请求体,这- 行非常重要,必不可少。
  • 户请求体:请求体是请求提交的参数,GET方法已经在URL中指明了参数,所以提交时没有数据。POST 方法提交的参数在请求体中。

常用的请求头

请求头描述
Host接受请求的服务器地址,可以是IP:端口号,也可以是域名
User-Agent发送请求的应用程序名称
Connection指定与连接相关的属性,如Connection:Keep-Alive
Accept-Charset通知服务端可以发送的编码格式
Accept-Encoding通知服务端可以发送的数据压缩格式
Accept-Language通知服务端可以发送的语言

(2) 响应报文 

  • 状态行:状态行由协议版本,状态码,状态码描述三部分组成。
  • 响应头:响应头与请求头部类似,为响应报文添加了一些附加信息。
  • 空行:响应头部的最后会有一个空行,表示响应头部结束。
  • 响应体:服务器返回的相应 HTML 数据,浏览器对其解析后显示页面。

常见响应头部:

响应头描述
Server服务器应用程序软件的名称和版本
Content-Type响应正文的类型(是图片还是二进制字符串)
Content-Length响应正文长度
Content-Charset响应正文使用的编码
Content-Encoding响应正文使用的数据压缩格式
Content-Language响应正文使用的语言

五. Nginx 服务

一款轻量级的 HTTP 服务器软件--Nginx,由俄罗斯的 Igor Sysoev 开发,其稳定、高效的特性逐渐被越来越多的用户认可。本章将讲解 Nginx 服务的基本构建、访问控制方式、虚拟主机的搭建,还有应用广泛的 LNMP 架构服务器的部署方式,并对 PHP FPM 模块如何支持 PHP 语言进行讨论。

1. Nginx 服务基础

 Nginx(发音为[engine x])专为性能优化而开发,其最知名的优点是它的稳定性和低系统资源消耗,以及对 HTTP并发连接的高处理能力(单台物理服务器可支持 30000~50000个并发请求)。

Nginx 诞生于 2004 年俄罗斯工程师 Igor Sysoev 之手,专为解决 C10K 高并发瓶颈而设计,其革命性的事件驱动架构与非阻塞I/0模型,使得单服务器即可承载数万并发连接。相较于传统 Web服务器,Nginx在静态资源处理效率上可达Apache 的5倍以上,内存消耗仅为同类产品的 1/10(每万连接约 2.5MB),同时支持配置热更新与模块化扩展。技术特性上融合了多阶段请求处理、epoll事件机制等底层优化,使其成为全球32.2%网站的首选服务器(Netcraft 2023 数据),在云原生时代更衍生出Kubernetes Ingress、Service Mesh 等现代化应用形态。

作为现代架构的中枢神经,Nginx 在电商秒杀、流媒体分发、微服务网关等场景展现独特价值:通过加权轮询/最少连接等智能算法实现毫秒级负载均衡,借助动静分离策略将静态资源响应速度提升3倍以上,结合 Lua 脚本扩展可构建毫秒级 WAF 防护。典型案例包括 Netflix每日 PB 级视频流量调度、Twitter 亿级消息推送的连接管理,其轻量化特性更在物联网领域支持百万设备并发通信,正因为如此,大量提供社交网络、新闻资讯、电子商务及虚拟主机等服务的企业纷纷选择 Nginx 来提供 Web 服务。

2. Nginx 1.24 安装

Nginx 安装文件可以从官方网站 http://www.nginx.org/下载。

2.1 编译安装 Nginx

2.1.1 安装支持软件

Nginx 的配置及运行需要 pcre、zlib 等软件包的支持,因此应预先安装这些软件的开发包(devel),以便提供相应的库和头文件,确保 Nginx 的安装顺利完成。

2.1.2 创建运行用户、组和日志目录 

Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限,增加灵活性、降低安全风险。

2.1.3 编译安装 Nginx

配置 Nginx 的编译选项时,将安装目录设为/usr/local/nginx,运行用户和组均设为 nginx;启用 http stub status module 模块以支持状态统计,便于查看服务器的连接信息。

其中

  • --prefix=/usr/local/nginx:指定 nginx安装路径
  • --user=nginx:指定运行 Nginx 工作进程的用户和组
  • --with-http ssl module:启用 HTTPS 支持(SSL/TLS 加密)
  • --with-http_v2 module:启用 HTTP/2 协议支持
  • --with-http stub status module:状态统计模块
  •  --with-pcre:启用PCRE库,支持正则表达式

为了使 Nginx 服务器的运行更加方便,可以为主程序 nginx 创建链接文件,以便管理员直接执行“nginx”命令就可以调用 Nginx 的主程序。

  • conf:保存 nginx所有的配置文件,其中 nginx.conf 是 nginx 服务器的最核心最主要的配置文件
  • html:目录中保存了 nginx 服务器的 web 文件,但是可以更改为其他目录保存 web 文件
  • logs:用来保存 nginx 服务器的访问日志错误日志等日志,1ogs 目录可以放在其他路径,比如/var/logs/nginx里面。
  • sbin:保存 nginx 二进制启动脚本,可以接受不同的参数以实现不同的功能。
  • *_tmp:临时文件目录 

3. Nginx 的运行控制 

3.1 检查配置文件

与 Apache 的主程序 httpd 类似,Nginx 的主程序也提供了“-t”选项用来对配置文件进行检查,以便找出不当或错误的配置。配置文件 nginx.conf 默认位于安装目录下的 conf/子目录中。若要检査位于其他位置的配置文件,可使用“-c选项来指定路径。

3.2 启动、停止 Nginx

通过检査 Nginx 程序的监听状态,或者在浏览器中访问此 Web 服务(默认页面将显示“Welcome to nginx!”),可以确认 Nginx 服务是否正常运行。

开启过后就可以访问nginx

Windows浏览器访问

linux访问

主程序 Nginx 支持标准的进程信号,通过 ki11 或 ki1la11 命令发送 HUP信号表示重载配置,QUIT 信号表示退出进程,KILL 信号表示杀死进程。例如,若使用 killal1 命令,重载配置、停止服务的操作分别如下所示(通过“-s”选项指定信号种类)

[root@localhost~]# killall -s HUP nginx    //选项-S HUP 等同于-1
[root@localhost~]# killall -s QUIT nginx     //选项-S QUIT 等同于 -3

 以下是 Nginx 进程支持的主要信号(Signals)及其作用,通过这些信号可以控制 Nginx 的运行行为(如重载配置、优雅关闭等):

信号命令参数作用
SIGHUPnginx-s reload重新加载配置文件(主进程重新读取配置并启动新的 Worker 进程,逐步替换旧进程)。
SIGUSR1nginx-s reopen重新打开日志文件(用于日志切割后通知 Nginx写入新文件)。
SIGTERMnginx-s stop立即终止主进程和所有 Worker 进程(快速关闭)。
SIGQUITnginx-s quit优雅关闭(等待当前请求处理完成后终止进程)
SIGINT-等同于 SIGTERM(如按Ctr1+ 终止前台运行进程)
SIGWINCH-关闭 Worker 进程(通常与 SIGQUIT 配合用于热升级)
SIGUSR2-热升级 Nginx(启动新版本的主进程,需配合其他信号)

当 Nginx 进程运行时,PID 号默认存放在 logs/日录下的 nginx.pid 文件中,因此若改用 ki11 命令,也可以根据 nginx.pid 文件中的 PID 号来进行控制。

3.3 添加Nginx系统服务

为了使 Nginx 服务的启动、停止、重载等操作更加方便,可以编写 Nginx 服务脚本,并使用 chkconfig 和 systemctl 工具来进行管理。

验证是否能使用系统命令 先杀死nginx进程号

这样一来,就可以 systemctl 命令来启动、停止、重启、重载 Nginx 服务器了,方法是在执行时添加相应的 start、stop、restart、reload 参数

4. 配置文件 nginx.conf 

在 Nginx 服务器的主配置文件/usr/local/nginx/conf/nginx.conf 中,包括全局配置、I/0 事件配置和 HTTP 配置这三大块内容,配置语句的格式为“关键字值;”(末尾以分号表示结束),以“#”开始的部分表示注释。

4.1 全局配置

由各种配置语句组成,不使用特定的界定标记。全局配置部分包括Nginx服务的运行用户、工作进程数、错误日志、PID 存放位置等基本设置。

 

上述配置中,worker_processes 表示工作进程的数量。如果服务器有多块 CPU或者使用多核处理器,可以参考CPU核心总数来指定工作进程数。如果网站访问量需求并不大,一般设为1就够用了。其他三项配置均已有注释,表示采用默认设置,例如,Nginx 的运行用户实际是编译时指定的nginx,若编译时未指定则默认为 nobody。

 4.2 I/0 事件配置

使用“events{}” 界定标记,用来指定 Nginx 进程的 I/0 响应模型、每个进程的连接数等设置。对于 2.6及以上版本的内核,建议使用 epo11 模型以提高性能;每个进程的连接数应根据实际需要来定,一般在10000以下(默认为1024)

若工作进程数为 8,每个进程处理 4096个连接,则允许Nginx正常提供服务的连接数已超过 3万个(4096x8=32768),当然具体还要看服务器硬件、网络带宽等物理条件的性能表现

4.3 HTTP 配置 

使用“http {}”界定标记,包括访问日志、HTTP 端口、网页目录、默认字符集、连接保持,以及后面要讲到的虚拟 Web 主机、PHP 解析等一系列设置,其中大部分配置语句都包含在子界定标记“server {}”内。

                        

上述配置中,1isten 语句允许同时限定 IP 地址,采用“IP 地址:端口”形式。root 语句用来设置特定访问位置(如“1ocation/”表示根目录)的网页文档路径,默认为 Nginx 安装目录下的 htm1/子日录,根据需要可改为/var/www/html 等其他路径。

5. 访问状态统计 

Nginx 内置了 HTTP STUB STATUS 状态统计模块,用来反馈当前的 Web 访问情况。
配置编译参数时可添加--with-http stub status module 来启用此模块支持,可以使用命令/usr/local/nginx/sbin/nginx -V 査看已安装的 Nginx 是否包含 HTTP STUB STATUS 模块。
要使用 Nginx的状态统计功能,除了启用内建块以外,还需要修改nginx.conf 配置文件,指定访问位置并添加 stub status 配置代码。

新的配置生效以后,在浏览器中访问 Nginx 服务器的/status 网站位置可以看到当前的状态统计信息,如图所示。其中,“Active connections”表当前的活动连接数(2);而“server accepts handled requests”表示已处理的连接信息,三个数字依次表示已处理的连接数(2)、成功的 TCP 握手次数(2)、已处理的请求数(3)。 

 

 

 

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

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

相关文章

信创系统资产清单采集脚本:主机名+IP+MAC 一键生成 CSV

原文链接&#xff1a;信创系统资产清单采集脚本&#xff1a;主机名IPMAC 一键生成 CSV Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇在信创终端操作系统上自动批量采集主机名、IP 和 MAC 并导出为 CSV 表格的实战文章&#xff01;本方案使用 sshpass 和 Bash 脚本…

【dify+docker安装教程】

目录 一、dify安装包下载 二、运行环境配置 1、下载docker 2、安装 2.1 新建文件夹 2.2 安装 2.3 命令安装 3.下载完成后需要重启电脑&#xff0c;注意保存文档&#xff01;&#xff01;注意保存&#xff01;&#xff01;注意&#xff01;&#xff01;&#xff08;血的教…

HTML 地理定位(Geolocation)教程

HTML 地理定位(Geolocation)教程 简介 HTML5 的 Geolocation API 允许网页应用获取用户的地理位置信息。这个功能可用于提供基于位置的服务&#xff0c;如导航、本地搜索、天气预报等。本教程将详细介绍如何在网页中实现地理定位功能。 工作原理 浏览器可以通过多种方式确定…

协作开发攻略:Git全面使用指南 — 引言

协作开发攻略&#xff1a;Git全面使用指南 — 引言 Git 是一种分布式版本控制系统&#xff0c;用于跟踪文件和目录的变更。它能帮助开发者有效管理代码版本&#xff0c;支持多人协作开发&#xff0c;方便代码合并与冲突解决&#xff0c;广泛应用于软件开发领域。 文中内容仅限技…

毕业设计-基于预训练语言模型与深度神经网络的Web入侵检测系统

项目技术说明 基于预训练语言模型与深度神经网络的Web入侵检测系统&#xff0c;通过预训练模型CodeBert分词&#xff0c;将分词输入给BiGRU的深度学习模型训练。通过sniff函数实时捕获http流量信息&#xff0c;将流量信息输入给模型进行检测&#xff0c;模型可以检测的类别有S…

[计算机科学#4]:二进制如何塑造数字世界(0和1的力量)

【核知坊】&#xff1a;释放青春想象&#xff0c;码动全新视野。 我们希望使用精简的信息传达知识的骨架&#xff0c;启发创造者开启创造之路&#xff01;&#xff01;&#xff01; 内容摘要&#xff1a; 二进制是计算机世界的基石&#xff0c;数学是世界的…

JUC中各种锁机制的应用和原理及死锁问题定位

JUC中各种锁机制的应用和原理及死锁问题定位 在互联网大厂Java求职者的面试中&#xff0c;经常会被问到关于JUC&#xff08;Java Util Concurrency&#xff09;中的各种锁机制及其应用和原理的问题。本文通过一个故事场景来展示这些问题的实际解决方案。 第一轮提问 面试官&…

配置Ubuntu18.04中的Qt Creator为中文(图文详解)

配置Qt Creator为中文 1、前言2、先设置Ubuntu系统语言为中文3、配置Qt Creator中文环境2.1 IBus输入法&#xff08;方法一&#xff09;2.2、测试IBus输入法2.21IBus输入法终端中测试2.2.2IBus输入法Qt Creator中测试 2.3、Fcitx输入法&#xff08;方法二&#xff09;2.3.1安装…

高性能服务器配置经验指南3——安装服务器可能遇到的问题及解决方法

文章目录 1、重装系统后VScode远程连接失败问题2、XRDP连接黑屏问题1. 打开文件2. 添加配置3. 重启xrdp服务 3、VScode远程免密连接问题4、Vim编辑文件时出现不同用户冲突编辑的问题 在完成 服务器基本配置和 深度学习环境准备后&#xff0c;大家应该就可以正常使用服务器了&…

PyQt6基础_QThread

目录 前置 代码&#xff1a; 运行 正常运行 QThread运行报错 视频 前置 1 PySide6.QtCore.QThread - Qt for Python QThread官方文档 2 长时间任务可以放到QThread中执行&#xff0c;避免占用主线程导致界面卡顿无法操作 代码&#xff1a; import traceback,sys fro…

Spring Boot 应用运行指南

&#x1f680; Spring Boot 应用运行指南 ⚙️ 使用 Maven &#x1f527; 运行命令 $ mvn spring-boot:run✨ 启动效果 . ____ _ __ _ _/\\ / ____ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | _ | _| | _ \/ _ | \ \ \ \\\/ ___)| |_)| | | | | || (_…

jeecgboot 3.8.0 集成knife4j问题一文解决

问题描述: ​ 在cloud环境下,若应用系统配置了context-path,则无法通过网关进入后台接口管理系统 原因分析: ​ 查看请求信息发现少拼接了系统的context-path,导致无法正确请求到数据。直接使用正确的地址可以正常通过网关访问。故此确定为集成knife4j的问题。 解决办法…

【Flutter】Flutter + Unity 插件结构与通信接口封装

关联文档&#xff1a;【方案分享】Flutter Unity 跨平台三维渲染架构设计全解&#xff1a;插件封装、通信机制与热更新机制—— 支持 Android/iOS/Web 的 3D 内容嵌入与远程资源管理&#xff0c;助力 XR 项目落地 —— 支持 Android/iOS/Web 的 3D 内容嵌入与远程资源管理&…

推荐 1 款 9.3k stars 的全景式开源数据分析与可视化工具

Orama 是一个开源的数据分析与可视化项目&#xff0c;由askorama团队开发和维护。该项目旨在为用户提供一套强大而易用的工具集&#xff0c;帮助用户轻松处理和理解大规模数据&#xff0c;通过创建交互式且引人入胜的数据可视化图表&#xff0c;揭示隐藏在数据背后的深层次洞察…

关于windows API 的键鼠可控可测

相关函数解释 GetAsyncKeyState 是 Windows API 中的一个函数&#xff0c;用于判断某个虚拟键是否被按下。GetAsyncKeyState(VK_ESCAPE) 专门用于检测 Esc 键的状态。下面为你详细介绍其用法&#xff1a; 函数原型 cpp SHORT GetAsyncKeyState( int vKey ); 参数 vKey&a…

vs 安装完番茄助手visual assist 后 菜单栏不显示

vs 安装完番茄助手visual assist 后 菜单栏不显示 出现原因解决办法&#xff1a; 出现原因 vs安装完番茄助手后&#xff0c;不显示。主要原因是之前安装过&#xff0c;但是试用过期了&#xff0c;卸载后重新安装然后替换破解版的dll 导致的。 解决办法&#xff1a; 关闭vs软件…

论文导读 - 基于边缘计算、集成学习与传感器集群的便携式电子鼻系统

基于边缘计算、集成学习与传感器集群的便携式电子鼻系统 原论文地址&#xff1a;https://www.sciencedirect.com/science/article/abs/pii/S0925400522015684 引用此论文&#xff08;GB/T 7714-2015&#xff09;&#xff1a; WANG T, WU Y, ZHANG Y, et al. Portable electr…

EasyCVR视频汇聚平台助力大型生产监控项目摄像机选型与应用

一、方案背景 在300路大型生产监控项目中&#xff0c;由于生产环境复杂多样&#xff0c;涵盖室外厂区、大型车间、室内办公区域等不同场景&#xff0c;单一类型的摄像机难以满足全方位、精细化的监控需求。EasyCVR作为一款功能强大的视频融合管理平台&#xff0c;具备灵活的视…

测试用例介绍

文章目录 一、测试用例基本概念1.1 测试用例基本要素 二、测试用例的设计方法2.1 基于需求的设计方法2.2 等价类2.3 边界值2.4 错误猜测法2.6 场景设计法2.7 因果图2.5 正交排列 三、综合&#xff1a;根据某个场景去设计测试用例&#xff08;万能公式&#xff09;四、如何使用F…

基于蓝牙Beacon人员导航方案

基于蓝牙Beacon人员导航方案 一、室内定位市场痛点与技术选择 大型商场&#xff08;单层超2万㎡&#xff09;和医院&#xff08;科室超200个&#xff09;的复杂空间中&#xff0c;传统GPS信号衰减超90%&#xff0c;用户平均寻路耗时10-15分钟&#xff0c;30%购物决策因“找店…