【Nginx介绍和安装与升级】

news2024/11/23 4:14:22

文章目录

  • Nginx网站服务
  • 一、nginx服务基础
    • 1. Nginx简介
    • 2. Tengine
    • 3. Nginx 相对于 Apache 的优点
    • 4. 阻塞与非阻塞 同步与异步
    • 5. nginx 应用场景
  • 二、编译安装nginx 服务
    • 1. 在线安装nginx
    • 2. nginx编译安装
      • 1. 关闭防火墙,将安装nginx所需软件包传到/opt目录下
      • 2. 安装依赖包
      • 3. 创建运行用户与组
      • 4.编译安装Nginx
      • 5. 检查、启动nginx服务
  • 三、升级Nginx
    • 1. Nginx平滑升级1.12.2->1.20.2
    • 2. 解压迭代版本的压缩包
    • 3. 关闭正在使用的Nginx进程
    • 4. 配置新版本的安装路径和依赖包
    • 5. 编译
    • 6. 备份旧版本并启动查看版本

Nginx网站服务

一、nginx服务基础

1. Nginx简介

Nginx (“engine x”) 是一个高性能的 HTTP 和反向代理服务器。Nginx 是由 Igor Sysoev 为俄
罗斯访问点开量第二的 Rambler.ru 站发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。其将源代码以类 BSD 许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻
名。2011 年 6 月 1 日,Nginx 1.0.4 发布。1.18 1.20 1.22 1.12

​ Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,
单台物理服务器可支持30 000~50 000个并发请求。并在一个 BSD-like 协议下发行。由俄罗斯的程序设计师 Igor Sysoev 所开发,供俄国大型的入口网站及搜索引擎 Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上 Nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 Nginx 网站用户有:百度 BWS、新浪、网易、腾讯、等。

2. Tengine

     Tengine 是由淘宝网发起的 Web 服务器项目。它在 Nginx 的基础上,针对大访问量网站的需求,添

加了很多高级功能和特性。Tengine 的性能和稳定性已经在大型的网站如淘宝网、天猫商城等得到了很好
的检验。(可以这样理解:淘宝网拿到了 Nginx 源代码之后,进行了功能的填充、优化等等,然后提交给
Nginx 官方,但是由于 Nginx 官方相应慢甚至不响应,加上语言沟通的不顺畅,于是淘宝公司就自己打
包,在遵循 GPL 的原则上进行二次开发,于是就出了现在的 Tengine 这个版本)

官网网站:http://tengine.taobao.org/

3. Nginx 相对于 Apache 的优点

  1. 轻量级高并发处理能力
  2. 配置简单灵活
  3. 高性能静态内容处理
  4. 处理高流量网站
  5. 更好的反向代理功能

4. 阻塞与非阻塞 同步与异步

阻塞与非阻塞
阻塞和非阻塞指的是调用者 (程序) 在等待返回结果 (或输入) 时的状态。阻塞时,在调用结果返回前,当前线程会被挂起,并在得到结果之后返回。非阻塞时如果不能立刻得到结果,则该调用者不会阻塞当前线程。因此对应非阻塞的情况调用者需要定时轮询查看处理状态。

同步与异步
同步:同步是指一个进程在执行某个请求的时候,如果该请求需要一段时间才能返回信息,那么这个进程会一直等待下去,直到收到返回信息才继续执行下去。
异步:异步是指进程不需要一直等待下去,而是继续执行下面的操作,不管其他进程的状态,当有信息返回的时候会通知进程进行处理,这样就可以提高执行的效率了,即异步是我们发出的一个请求,该请求会在后台自动发出并获取数据,然后对数据进行处理,在此过程中,我们可以继续做其他操作,不管它怎么发出请求,不关心它怎么处理数据。

简单理解就是
阻塞:死等,直到处理出结果
非阻塞:在等待结果时可以先干别的事,但要时不时查看处理进度
同步:在执行某个请求时,出结果了但是没有返回信息,进程要一直等下去,直到收到返回信息才能执行下去
非同步:在一个进程处理某个请求时,可以继续干别的事,等第一个请求处理完后会自动处理下一个请求

5. nginx 应用场景

① 静态服务器 (图片、视频服务、文本)
② 动态服务
③ 反向代理, 负载均衡
④ 缓存服务

nginx 中http七层代理和四层代理

​ web服务器

做:代理 服务器

​ 反向代理, 负载均衡

二、编译安装nginx 服务

1. 在线安装nginx

  1. yum部署Nginx
    ①使用yum部署Nginx需要先安装epel-release扩展包,官方源默认没有Nginx的yum源。
yum install epel-release  -y

#安装epel-release扩展源

②扩展源安装完后直接安装Nginx。

yum install nginx -y 

#安装nginx服务
③使用yum安装的nginx配置文件位置在:/etc/nginx.conf。默认根目录在:/usr/share/nginx/html。默认日志文件在:/var/log/nginx/路径下。

2. nginx编译安装

1. 关闭防火墙,将安装nginx所需软件包传到/opt目录下

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

下载安装包:nginx-1.12.0.tar.gz

这里下载安装包 https://nginx.org/download/nginx-1.18.0.tar.gz

wget https://nginx.org/download/nginx-1.18.0.tar.gz

2. 安装依赖包

#nginx的配置及运行需要pcre、zlib等软件包的支持,因此需要安装这些软件的开发包,以便提供相应的库和头文件。
yum -y install pcre-devel zlib-devel gcc gcc-c++ make
yum -y install gcc openssl openssl-devel pcre-devel zlib zlib-devel

3. 创建运行用户与组

#创建运行用户、组(Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限)
useradd -M -s /sbin/nologin nginx

4.编译安装Nginx

cd /opt
tar zxvf nginx-1.12.0.tar.gz -C /opt/

cd nginx-1.12.0/
./configure \
--prefix=/usr/local/nginx \					#指定nginx的安装路径
--user=nginx \								#指定用户名
--group=nginx \								#指定组名
--with-http_stub_status_module				#启用 http_stub_status_module 模块`在这里插入代码片`以支持状态统计操作  VTS

cd nginx-1.12.0/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module	

make && make install

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/		#让系统识别nginx的操作命令

5. 检查、启动nginx服务

nginx -t								#检查配置文件是否配置正确
#启动
nginx

三、升级Nginx

新版本升级:
tar -zxvf nginx-1.xx.xx.tar.gz  1.20.2
cd nginx-1.xx.xx
./configure \
--prefix=/usr/local/nginx \		
--user=nginx \					
--group=nginx \					
--with-http_stub_status_module \
--with-http_ssl_module

make
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old   备份
cp objs/nginx /usr/local/nginx/sbin/nginx
重启服务 并且
nginx -V   #查看版本

1. Nginx平滑升级1.12.2->1.20.2

在这里插入图片描述

2. 解压迭代版本的压缩包

在这里插入图片描述

3. 关闭正在使用的Nginx进程

在这里插入图片描述

4. 配置新版本的安装路径和依赖包

在这里插入图片描述

5. 编译

在这里插入图片描述

6. 备份旧版本并启动查看版本

在这里插入图片描述

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

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

相关文章

二维码标签制作教程

如今二维码已被广泛应用在了许多场景中,譬如设备巡检、固定资产盘点、隐患上报、人员管理等,在二维码投入使用前需要为设备、物品、人员等制作一物一码标签。为了让标签快速落地,可使用草料二维码的标签制作功能,只需选择心仪的标…

Cortext-M3系统:中断的具体行为(6)

1、中断/异常的响应序列 当CM3开始响应一个中断时,会在它小小的体内奔涌起三股暗流: ​ 入栈:把8个寄存器的值压入栈 ​ 取向量:从向量表中找出对应的服务程序入口地址 ​ 选择堆栈指针MSP/PSP,更新堆栈指针SP&#xf…

数据恢复技巧:如何恢复已删除的手机短信

短信包含大量重要信息,例如个人联系人、密码和重要业务数据。丢失有价值的数据可能会令人失望,但很高兴知道可以使用多种方法恢复短信。 在本文中,我们将探讨您可以采取哪些步骤来恢复 Android 或 iOS 设备上丢失或删除的短信。 第 1 部分…

chatgpt赋能python:Python指定区域截图:优化截图流程的最佳方式

Python指定区域截图:优化截图流程的最佳方式 在网络时代,图片作为一种重要的信息传播方式,扮演着举足轻重的角色。截图作为最常见的图片处理方式之一,也时常被我们用于记录屏幕内容、报告问题及展示操作流程。 若想提高截图的效…

操作系统-I/O管理-磁盘和固态硬盘

目录 一、磁盘结构 二、磁盘调度算法 ​编辑 2.1先来先服务(FCFS) 2.2最短寻找时间优先(SSTF) 2.3扫描算法(SCAN) 2.4LOOK调度算法 2.5循环扫描算法(C-SCAN) 2.6 C-LOOK调度算法 三、减少延迟时间方法 交替编号 ​磁盘地址结构的设计 错位命名 四、磁盘的管理 4.1磁盘…

JDK自带的构建线程池的方式之newFixedThreadPool

在Java中基于Executors提供了很多种线程池供开发者使用,在Java的并发包下,由并发编程大佬到隔离创建。 newFixedThreadPool 这个线程池的特点是线程数是固定的,下面这个是在Executors类中提供的一种静态方法。在使用的时候需要向方法提供一个…

Excel VBA 语法基础

VBA(Visual Basic for Applications)是一种用于宏编程和自动化任务的编程语言,广泛应用于 Microsoft Office 套件中的各种应用程序,如 Excel、Word 和 PowerPoint。掌握 VBA 基础语法可以帮助您通过编写自定义的宏来增强和自动化这…

python:使用Scikit-image对遥感影像进行角点检测特征提取(corner)

作者:CSDN @ _养乐多_ 本文将介绍使用Scikit-image对遥感影像进行角点检测特征(corner)提取的一些方法及其代码。方法包括 Harris角点检测(corner_harris),Shi-Tomasi角点检测(corner_shi_tomasi),Foerstner角点检测(corner_foerstner),FAST角点检测(corner_fast…

VUE 2X 计算监视属性 ⑥

目录 文章有误请指正,如果觉得对你有用,请点三连一波,蟹蟹支持✨ V u e j s Vuejs Vuejs计算属性 C o m p u t e d Computed Computed监视属性 W a t c h Watch Watch总结 文章有误请指正,如果觉得对你有用,…

Apache Superset产品调研

Apache Superset产品调研 调研报告:Apache Superset 一、概述 Apache Superset是一个开源的数据可视化和数据探索平台,它提供了一个用户友好的界面,可以轻松地创建和分享仪表板。它支持多种数据源,包括SQLAlchemy兼容的数据库、…

io.netty学习(九)Netty 如何实现零拷贝

目录 前言 Java 实现零拷贝 1、Java提供 mmap/write 方式 2、Java 提供 sendfile 方式 Netty 实现零拷贝 1、CompositeByteBuf 方式 2、wrap 方式 3、slice 方式 4、 FileRegion 方式 总结 前言 本篇文章我们就来讲讲 Netty 的零拷贝,在这之前&#xff0…

数据结构练习题1:基本概念

练习题1:基本概念 1 抽象数据类型概念分析2. 逻辑结构与存储结构概念分析3.综合选择题4.综合判断题5.时间复杂度相关习题 1 抽象数据类型概念分析 1.可以用(抽象数据类型)定义一个完整的数据结构。 分析: 1)抽象数据…

【Leetcode -617.合并二叉树 -1022.从根到叶的二进制数之和】

Leetcode Leetcode -617.合并二叉树Leetcode -1022.从根到叶的二进制数之和 Leetcode -617.合并二叉树 题目:给你两棵二叉树: root1 和 root2 。 想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠&#x…

ESP32-IDF VS Code进行开发

ESP32-C3 入门篇(二)使用VS Code进行开发 文章目录 前言 总结STM32的成功,除了Cortex M3的性能强之外,也离不开ST推出的标准库及简单易用的MDK IDE。完善的开发配套,极大的降低了开发门槛,让开发者更专注…

python:使用Scikit-image对遥感影像做空间滤波(中值,高斯,Sobel,Laplace,Scharr等)

作者:CSDN @ _养乐多_ 本文将介绍使用Scikit-image中的滤波函数对遥感影像做空间滤波的代码。滤波方法包括:中值滤波器,高斯滤波器,Sobel滤波器,Laplace滤波器,Scharr滤波器等。并将原始影像和结果影像绘制成图。 结果如下图所示, 文章目录 一、空间滤波函数详解二、…

RocketMQ发送消息

一.消费模式 MQ的消费模式可以大致分为两种,一种是 推Push,一种是 拉Pull。 Push 是 服务端 (MQ) 主动推送消息给客户端,优点是及时性较好,但如果客户端没有做好流控,一旦服务端推送大量消息到客户端时,…

分布式光伏电站智能管理系统

随着能源需求的增加,各种各样的光伏电站工程建设出现不同形式的技术缺陷。设计了分布式光伏电站区域智能系统,实现 了各个园区用电数据的集中管理。对光伏电站分布式运营管理进行了研究,采用集中运营管理中心的方法,建立了区域分布…

蓝牙L2CAP协议简介及报文格式

概述 逻辑链路控制和适配协议(Logical Link Control and Adaptation Protocol,L2CAP)是蓝牙的核心协议,负责适配基带中的上层协议。它同链路管理器并行工作,向上层协议提供定向连接的和无连接的数据业务。L2CAP具有分…

Baumer工业相机堡盟工业相机如何通过BGAPISDK将相机图像写入相机内存(C++)

Baumer工业相机堡盟工业相机如何通过BGAPISDK将相机图像写入相机内存(C) Baumer工业相机Baumer工业相机BGAPISDK和相机内存的技术背景Baumer工业相机通过BGAPISDK将相机图像写入相机内存功能1.引用合适的类文件2.通过BGAPISDK将相机图像写入相机内存功能…

Cortext-M3系统:异常(3)

1、异常 异常响应系统是再M3内核水平上的,支持众多的系统异常和外部中断。1-15为系统异常,大于16为外部中断。除了个别异常的优先级被定死外,其它异常的优先级都是可编程的。优先级数值越小,优先级越高。CM3支持中断嵌套&#xff…