Linux实操笔记2 Ubuntu安装Nginx的不同方法

news2024/12/23 10:12:47

今天来了解Ubuntu或者说Linux系统安装Nginx的几种办法。包括从Ubuntu的库安装到官方源码编译安装。

一、Nginx是什么?

以下是来自Nginx中文文档的内容。

Nginx 是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性:

作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎。能够支持高达 50,000 个并发连接数的响应,感谢 Nginx 为我们选择了 epoll and kqueue 作为开发模型.

作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP代理服务器 对外进行服务。Nginx 用 C 编写, 不论是系统资源开销还是 CPU 使用效率都比 Perlbal 要好的多。

作为邮件代理服务器: Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm 描述了成功并且美妙的使用经验。

Nginx 安装非常的简单,配置文件 非常简洁(还能够支持perl语法),Bugs非常少的服务器: Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够在 不间断服务的情况下进行软件版本的升级。

这是Nginx的优势。

具体能做到什么以及怎么做到还需要后续学习。

Nginx能做什么?

  1. 基本 HTTP 服务器功能
  2. 其他 HTTP 服务器功能
  3. 邮件代理服务器功能
  4. TCP/UDP 代理服务器功能

要看更具体的介绍:

nginx

Nginx的平台

Nginx支持大部分的常用操作系统尤其是咱们作为服务器使用的系统。

你不仅可以在Ubuntu使用它,也可以在CentOs,Windows上使用它。是的。你可以就在Windows系统上使用它。你可以访问Nginx官网下载它。 

你可以在自己Windows系统上体验它,但是如果你想要做点更酷的事情,我建议还是使用Ubuntu或者CentOs,乃至于WindowsServer等服务器来部署它,至少你可以更轻松的让世界上的其他人访问它。

Nginx的功能非常强大,值得我们去了解它的细节。

在知道它的功能之后不是说咱们立刻就会用了,可以研究其代码,阅读它的文档,以及一些中文的书籍。

最新的消息:你可以访问Nginx官网去了解以下现在Nginx的情况。

nginx news

二、Nginx怎么安装

Nginx事实上支持很多的操作系统,有多重安装方式,我们来看看怎么个回事。

预先给出下面的链接:

github上的Nginx项目。

GitHub - nginx/nginx: The official NGINX Open Source repository.

Windows选择版本下载。

nginx: download

编译安装Nginx的文档

Building nginx from Sources

1、从存储仓库下载安装

在新机器上首次安装 nginx 之前,您需要 设置 nginx 包存储库。 之后,您可以从存储库安装和更新 nginx。

你可以从官方仓库也可以从Ubuntu软件仓库下载安装。涉及到的知识点不多,比较适合我们这样的初学者。

官方源:

下载配套工具

sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring

 这些工具包感兴趣的话可以一个个去了解具体是做什么的。这里简要说明一下:

curl用来下载网络资源,gnupg2用来校验资源,ca-certificates用来校验https证书,lsb-release用来获取版本信息,ubuntu-keyring用来验证ubuntu软件仓库公钥。

获取签名密钥

curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

验证下载的文件是否包含正确密钥 

gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg

 将仓库版本设置为稳定版本:

echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

命令解释: 

添加 Nginx 官方仓库:这条命令将 Nginx 官方的 APT 仓库添加到系统中,具体的仓库地址根据你当前系统的版本自动调整。例如,如果你运行的是 Ubuntu 22.04,lsb_release -cs 会返回 jammy,所以仓库地址将会是 http://nginx.org/packages/ubuntu jammy nginx。

使用指定的签名密钥:仓库源中指定的 [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg],确保 APT 包管理器会使用 nginx-archive-keyring.gpg 来验证从 Nginx 官方仓库下载的软件包的签名。

保存仓库地址:最终,仓库源地址被保存到 /etc/apt/sources.list.d/nginx.list 文件中。APT 包管理器会从这个文件中读取 Nginx 仓库的地址,以便安装和更新 Nginx。

其实这里就是对源进行了更换。 

 也可以设置为主线版本:和上面二选一即可。

echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/mainline/ubuntu `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

设置仓库优先级:

echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
    | sudo tee /etc/apt/preferences.d/99nginx

之后就可以进行常规的安装了:

sudo apt update
sudo apt install nginx

Ubuntu软件仓库

如果你从Ubuntu软件仓库下载,这将是最简单的一部分。

sudo apt update
sudo apt install nginx

可以使用下述代码检测是否正常工作。 

sudo systemctl status nginx

 

2、代码编译安装

这种手段就和我们Windows平时安装软件一样,去官网下载安装包然后安装?但是我们下的是源代码,需要进行编译。

官网直接下载

当然上面给出的nginx的windows安装链接就是从这里下载,不过Ubuntu就麻烦许多了,下载下来可不能直接跑哇。

5f469495596641fdaee6f83ef800214b.png

Mainline、Stable 和 Legacy 是 Nginx 官方维护的三个版本分支,每个分支都有不同的更新频率和使用场景,适用于不同需求的用户。它们的主要区别在于开发阶段、功能和稳定性。 

 mainline是最活跃的分发版本。是最新的版本,可能具有最新的功能,也不是一定不稳定。

stable就字面意思理解:稳定版本,是长期维护或者说当前的稳定版本,这个分支不包含最新的功能,更新也比较少,最重视稳定性和安全性。

legacy版本是旧版本,或者说遗留版本,与我们使用的目的不同有关,提供给需要指定版本的nginx的用户。

下载下来之后,你会得到一个压缩包。

这个压缩包解压后可以用来编译代码。

c711e08e79584598a05f621dd82ad98f.png

这个包可以在后面用到。 

 pgp是什么?

PGP (Pretty Good Privacy) 是一种广泛使用的加密程序,主要用于 加密电子邮件数字签名,以保护通信的隐私和真实性。PGP 结合了对称加密和非对称加密,并广泛应用于数据加密和解密、身份验证和文件完整性验证。

编译安装

下载工具:

在之前建议先更新一下仓库哈:

sudo apt-get update
apt-get install build-essential
apt-get install libtool

选定源码目录:

cd /usr/local/src

 下载最新的 PCRE 源码包,使用下面命令下载编译和安装 PCRE 包:

cd /usr/local/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.34.tar.gz 
tar -zxvf pcre-8.34.tar.gz
cd pcre-8.34
./configure
make
make install

下载最新的 zlib 源码包,使用下面命令下载编译和安装 zlib:

cd /usr/local/src

wget http://zlib.net/zlib-1.2.8.tar.gz
tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make
make install

安装ssl;

cd /usr/local/src
wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz
tar -zxvf openssl-1.0.1c.tar.gz

Nginx有两个版本,分别是稳定版和开发版,可以根据你的目的来选择这两个版本的其中一个,下面是把 Nginx 安装到/usr/local/nginx 目录下:注意这里的wget获取的就是nginx的版本代码包,如果你已经下载了其他的版本的代码包,可以直接解压你下载好的包。

版本列表:

Index of /download/ (nginx.org)

cd /usr/local/src
wget http://nginx.org/download/nginx-1.4.2.tar.gz
tar -zxvf nginx-1.4.2.tar.gz
cd nginx-1.4.2

编译选项以及构建最终安装 

./configure --sbin-path=/usr/local/nginx/nginx \
--conf-path=/usr/local/nginx/nginx.conf \
--pid-path=/usr/local/nginx/nginx.pid \
--with-http_ssl_module \
--with-pcre=/usr/local/src/pcre-8.34 \
--with-zlib=/usr/local/src/zlib-1.2.8 \
--with-openssl=/usr/local/src/openssl-1.0.1c

make
make install

 下面这个更全:

./configure \ 
    --with-threads \ 
    --with-file-aio \ 
    --with-http_ssl_module \ 
    --with-http_v2_module \ 
    --with-http_realip_module \ 
    --with-http_addition_module \ 
    --with-http_xslt_module=dynamic \ 
    --with-http_image_filter_module=dynamic \ 
    --with-http_geoip_module=dynamic \ 
    --with-http_sub_module \ 
    --with-http_dav_module \ 
    --with-http_flv_module \ 
    --with-http_mp4_module \ 
    --with-http_gunzip_module \ 
    --with-http_gzip_static_module \ 
    --with-http_auth_request_module \ 
    --with-http_random_index_module \ 
    --with-http_secure_link_module \ 
    --with-http_degradation_module \ 
    --with-http_slice_module \ 
    --with-http_stub_status_module \ 
    --with-stream=dynamic \ 
    --with-stream_ssl_module \ 
    --with-stream_realip_module \ 
    --with-stream_geoip_module=dynamic \ 
    --with-stream_ssl_preread_module \ 
    --with-compat  \ 
    --with-pcre-jit 
    make
    make install

编译的选项可以参照下面链接: 

从源构建 nginx

自己编译安装会更加自由,但是对初学者不是很友好。

三、 检查Nginx状态

检查端口状态: 

netstat -ano|grep 80

启动nginx: 

sudo /usr/local/nginx/nginx

 

 

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

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

相关文章

Matlab生成prbs7的代码

最近的一个客户需求,客户想看一下我们的产品产生的prbs并进行一些分析。 我在“”豆包“”这里找到了一个pbs的matlab的生成程序,效果就是连续生成prbs7,然后每次都在原来的基础之上添加。 生成的matlab的PRBS7代码修改如下: %…

深入了解字符函数和字符串函数

前言:今天给大家深入理解一下字符函数 和 字符串函数。通过使用 和 模拟实现 带大家加深理解,让大家灵活使用。 字符函数 在C语言中,有一系列函数是专门做字符分类的,也就是一个字符属于什么类型的字符。 这些函数的使用都要包含…

Redis embstr 编码

embstr 编码 是 Redis 中一种优化存储小型字符串的编码方式。它是 Redis 内部存储字符串的多种方式之一,特别适用于存储长度不超过 44 字节的小字符串。

java中Class文件的文件格式

无关性的基石 计算机底层只能识别二进制,由CPU直接处理二进制,在底层上面是操作系统,在操作系统上面就是虚拟机,java有一个口号,“一次编写,到处运行”这个不太可能在操作系统层面上实现,不同的…

SQL Server开启网络访问

目前工作中很少用到SQL Server了,最近需要测试几个表,需要搭建一个SQL Server数据库服务,这里做个总结吧。 安装这里就不做详细介绍了,本文只介绍如何开启SQL Server网络访问。 1、云服务器安全组设置 如果是搭建在云服务器上&a…

时序最佳入门代码|基于pytorch的LSTM天气预测及数据分析

前言 在本篇文章,我们基于pytorch框架,构造了LSTM模型进行天气预测,并对数据进行了可视化分析,非常值得入门学习。该数据集提供了2013年1月1日至2017年4月24日在印度德里市的数据。其中包含的4个参数是平均温度(meant…

【数字集成电路与系统设计】Chisel/Scala简介与Verilog介绍

目录 一、芯片前端设计开发背景知识 二、Verilog介绍 2.1 硬件设计一些重要概念 2.2 功能性仿真 2.3 简单的Verilog代码例子(4-bit的加法器) 三、Chisel简介 3.1 Chisel基本概念 3.2 Chisel代码展示 3.3 Chisel转成Verilog代码 四、Scala入…

数据清洗-缺失值填充-对XGBoost参数优化填充

目录 一、安装所需的python包二、采用XGboost算法进行缺失值填充2.1可直接运行代码2.2以某个缺失值数据进行实战2.2.1 代码运行过程截屏:2.2.2 填充后的数据截屏: 三、网格搜索(Grid Search)对 XGBoost 模型的超参数进行优化原理介…

Windows 上下载、编译 OpenCV 并配置系统环境变量的详细步骤

创作不易,您的打赏、关注、点赞、收藏和转发是我坚持下去的动力! 在 Windows 上下载并编译 OpenCV,然后配置系统环境变量的步骤如下: 1. 下载 OpenCV 打开 OpenCV 官方下载页面。找到最新的 Windows 版本,点击下载&…

初中生物--4.生物体的结构层次(二)

一、植物体的结构层次 1.绿色开花植物的六大器官 根、茎、叶、花、种子、果实 2.植物的组织 3.植物体的生长 植物体的生长是细胞分裂、生长和分化的综合结果。在植物体的生长过程中,细胞不断分裂产生新的细胞,新细胞不断生长使细胞体积增大&#xff…

数据结构 - 队列

一.队列的定义 1.队列的分类 队列根据存储结构可以分为 顺序队列 和 链式队列 2.队列的结构 ①.顺序队列 顺序队列的 front 指向队首元素的前一个下标 ②.链式队列 二.顺序队列的基本运算 0.顺序队列的结构体定义 typedef int data_t;typedef struct {data_t *data; …

stable diffusion 反推提示词插件 tagger 的安装,很详细

stable diffusion 反推提示词插件 tagger 的安装,很详细 一、前言二、下载1、方式一2、方式二 一、前言 最近想下载 stable diffusion 反推提示词插件 tagger ,也是好一番折腾,这里做个记录。 在安装之前确保能正常访问 github &#xff0c…

图像增强技术分析

图像增强是一种图像处理技术,旨在改善图像的视觉质量,使其更适合显示或进一步分析。这种技术可以应用于多种场景,包括医学成像、卫星图像、视频处理以及文本到图像生成模型等领域。图像增强的目标通常是提高图像的某些视觉特征,如…

[内网渗透]---msf基础-永恒之蓝-ms17-010

what Metasploit(通常简称为MSF)是一个开源的渗透测试框架,包含大量的已知漏洞利用模块,可以用来攻击目标系统并获取控制权。 how 实验环境:Kali、带有永恒之蓝漏洞的虚拟机且开启445端口(两个虚拟机同一子网) 1.信…

FPGA-Vivado-IP核-虚拟输入输出(VIO)

VIO IP核 背景介绍 Vivado中的VIO(Virtual Input/Output,虚拟输入/输出) IP核是一种用于调试和测试FPGA设计的IP核。当设计者通过JTAG接口与FPGA芯片连接时,在Vivado的Verilog代码中添加VIO IP核,就可以让设计者与FPG…

TCP 拥塞控制:一场网络数据的交通故事

从前有条“高速公路”,我们叫它互联网,而这条公路上的车辆,则是数据包。你可以把 TCP(传输控制协议)想象成一位交通警察,负责管理这些车辆的行驶速度,以防止交通堵塞——也就是网络拥塞。 第一…

08_Python数据类型_字典

Python的基础数据类型 数值类型:整数、浮点数、复数、布尔字符串容器类型:列表、元祖、字典、集合 字典 字典(Dictionary)是一种可变容器模型,它可以存储任意类型对象,其中每个对象都存储为一个键值对。…

3.4.3 __ipipe_init_early之初始化root domain

点击查看系列文章 》 Interrupt Pipeline系列文章大纲-CSDN博客 3.4.3 __ipipe_init_early之初始化root domain 如下图所示,红框里面的函数当前都是空的,本章还是分析蓝框中的代码片段。 第295行,变量ipd指向了ipipe_root即ipd代表root doma…

Java 入门指南:JVM(Java虚拟机)垃圾回收机制 —— 内存分配和回收规则

文章目录 垃圾回收机制堆空间的基本结构内存分配和回收规则对象优先在 Eden 区分配分配担保机制 大对象直接进入老年代长期存活的对象进入老年代主要进行 GC 的区域部分收集 (Partial GC):Minor GCMajor/Old GCMixed GC 整堆收集(Full GC) 空…

K-means 算法的介绍与应用

目录 引言 K-means 算法的基本原理 表格总结:K-means 算法的主要步骤 K-means 算法的 MATLAB 实现 优化方法与改进 K-means 算法的应用领域 表格总结:K-means 算法的主要应用领域 结论 引言 K-means 算法是一种经典的基于距离的聚类算法&#xff…