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

今天来了解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/srcwget 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.1cmake
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 makemake install

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

从源构建 nginx

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

三、 检查Nginx状态

检查端口状态: 

netstat -ano|grep 80

启动nginx: 

sudo /usr/local/nginx/nginx

 

 

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

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

相关文章

瓶中水位检测系统源码分享

瓶中水位检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

研1日记13

正态分布: toTenor:转数字变为0-1 加载模型: model youmodel() model.load("路径") 测试单个样本:

模特妙善:一位多才多艺的短视频达人,绽放新光彩

模特妙善,在当今多元化的网络时代,短视频已成为人们生活中不可或缺的一部分。而在这一领域中,有一位以其独特魅力和多才多艺而备受瞩目的达人,她就是妙善,本名高艳芳。 模特妙善,出生于山西省的著名景点——…

fiddler抓包01:工具介绍

课程大纲 fiddler是一款常见的抓包工具,可以对web端和移动端的接口请求进行抓包(截获)、分析、编辑、模拟等,还可以导出jmeter、Loadrunner测试脚本。 1、原理 fiddler作为代理服务器,拦截请求和服务器响应。 2、使用…

PCIe进阶之TL:Request Handling Rules

1 Handling of Received TLPs 本节介绍接收到的 TLP 在数据链路层经过完整性验证之后,这些 TLP 在事务处理层时的处理方式。这些规则如下图所示: 接收侧会忽略保留字段。如果 Fmt 字段显示存在至少一个 TLP Prefix : (1)通过检查后续 DWORD 的第一个字节中的 Fmt 字段,…

【数据结构】第八节:链式二叉树

个人主页: NiKo 数据结构专栏: 数据结构与算法 源码获取:Gitee——数据结构 一、二叉树的链式结构 typedef int BTDataType; typedef struct BinaryTreeNode {BTDataType data;struct BinaryTreeNode* left; // 左子树根节点struct BinaryT…

day01 - Java基础语法

第一章 Java概述 1995年美国Sun推出Java,2009年Sun公司被甲骨文收购 Java之父:詹姆斯高斯林(James Gosling) Java编译器将源程序编译成与平台无关的字节码文件(class文件),然后由JVM对字节码文件解释执行。不同操作系统&#xf…

71、哪吒开发板试用结合oak深度相机进行评测

基本思想:收到intel的开发板-小挪吒,正好手中也有oak相机,反正都是openvino一套玩意,进行评测一下,竟然默认是个window系统,哈哈

鸿蒙媒体开发系列01——资源分类访问

如果你也对鸿蒙开发感兴趣,加入“Harmony自习室”吧!扫描下方名片,关注公众号,公众号更新更快,同时也有更多学习资料和技术讨论群。 1、概述 应用开发过程中,经常需要用到颜色、字体、间距、图片等资源&am…

Vue3+Element Plus:使用el-dialog,对话框可拖动,且对话框弹出时仍然能够在背景页(对话框外部的页面部分)上进行滚动以及输入框输入信息

【需求】 使用Element Plus中的el-dialog默认是模态的(即它会阻止用户与对话框外部的元素进行交互),对话框弹出时仍然能够在背景页(对话框外部的页面部分)上进行滚动以及输入框输入信息,且对话框可拖动 【…

双三次插值及MATLAB实现

一、双三次插值的概念 双三次插值(Bicubic interpolation),又叫双立方插值。在数值分析这个数学分支中,双三次插值是二维空间中最常用的插值方法。在这种方法中,函数f在点 (x0 ,y0) 的值不仅考虑其直接邻接点对其的影响…

mybatis开启日志

步骤很详细,直接上教程 配置文件的文件格式可能有所不同,这里列举两种 配置方法 一. application.properties(默认 # 配置mybatis的日志信息 mybatis.configuration.log-implorg.apache.ibatis.logging.stdout.StdOutImpl二. application.y…

基于python+django+vue的在线学习资源推送系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于协同过滤pythondjangovue…

工程师 - ACPI介绍_2

Advanced Configuration and Power Interface (ACPI) Introduction and Overview Version 1.4 : 26 April 2016 Copyright © 2016 Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others. 本章提供了高级配置和电源…

【ACM出版,录用检索快】2024年第四届工商管理与数据科学国际学术会议 (BADS 2024,10月25-27)

2024年第四届工商管理与数据科学国际学术会议(BADS 2024)将于2024年10月25-27日在中国重庆召开,大会由喀什大学支持。 在当今全球化与数字化迅速发展的时代,工商管理与数据科学作为推动经济增长和技术进步的重要力量,正以前所未有的速度交叉融…

ROS学习笔记1.Mapping

为了执行自主导航,机器人必须拥有环境地图。机器人将使用此地图进行许多操作,例如规划轨迹、避开障碍物等。 您可以为机器人提供预先构建的环境地图(在极少数情况下,您已经拥有具有正确格式的地图),也可以…

Go语言开发im-websocket服务和vue3+ts开发类似微信pc即时通讯

前言 IM即时通讯聊天, 为软件开发者打造,不依赖第三方sdk,完全用Go语言开发即时通讯服务,支持H5、Electron、Wails 、Uniapp和各种小程序的IM即时通讯, 快速实现私聊、群聊、在线客服!让你快速搭建一个微信聊天系统,打…

浅谈住房城乡建设部科技创新平台布局重点方向

最近住房建设部组织开展住房城乡建设部科技创新平台(以下简称部科技创新平台)申报工作。详细内容见住房城乡建设部科技创新平台开始申报了 (qq.com)。在这里有4大方向共15个课题。内容见下图: 虽然我是做技术的,但是如何体现创新还…

mycat双主高可用架构部署-水评分表-枚举分片配置

MySQL5.7服务器IP是192.168.31.209及192.168.31.210 vi /usr/local/mycat/conf/schema.xml <?xml version"1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat"http://io.mycat/"><schema n…

AI赋能:无人直播新赛道,防封号、不限流,打造24小时流量引擎!

AI赋能&#xff1a;无人直播新赛道&#xff0c;防封号、不限流&#xff0c;打造24小时流量引擎&#xff01; 在数字化浪潮的推动下&#xff0c;直播行业正经历着前所未有的变革。传统直播模式受限于主播的实时参与、时间和地域的局限&#xff0c;难以满足日益增长的多元化需求。…