学习Nginx(二):版本介绍和安装

news2024/12/23 6:08:05

版本

        Nginx官方定义了Mainline、Stable、Legacy三种版本。

1. Mainline version(主线版本)

        该版本包含最新的功能和bug修复,被视为开发版,即正在活跃开发中的版本。其版本号通常为单数,例如1.25.5。这个版本的更新较快,可能会引入新的功能和修复,但也可能存在尚未解决的bug。

2. Stable version(稳定版本)

        最新稳定版适合生产环境使用。其版本号通常为双数,例如1.26。这个版本经过充分测试和验证,bug较少,适合用于承载实际业务。因此,通常建议在生产环境中使用此版本。

3. Legacy versions(历史版本)

        这些版本是之前发布的稳定版,对于需要特定旧版本的兼容性或安全性支持的用户有用。然而,这些版本一般不推荐用于新项目,除非有特殊需求。

源码

1. 只读存储库

  • code: http://hg.nginx.org/nginx
  • website: http://hg.nginx.org/nginx.org (mirror of GitHub repository)

2. GitHub库

  • code: GitHub - nginx/nginx: An official read-only mirror of http://hg.nginx.org/nginx/ which is updated hourly. Pull requests on GitHub cannot be accepted and will be automatically closed. The proper way to submit changes to nginx is via the nginx development mailing list, see http://nginx.org/en/docs/contributing_changes.html (mirror of Mercurial repository)
  • website: GitHub - nginx/nginx.org: Sources for the NGINX website and documentation

3. 源URL

  • URL:nginx – nginx

4. Linux包

        稳定版本和主线版本的相关Linux软件包。

  • URL:nginx: Linux packages

安装

        Nginx一般可以使用apt/yum/dnf来安装二进制包,若需使用特定的功能模块,则需要使用源码安装。

  • OS:Rocky Linux 9.3 (Blue Onyx)

1. 二进制包安装

1.1. 检查当前系统可安装列表

[root@RockyLinux9 ~]# dnf list nginx
Available Packages
nginx.x86_64                   1:1.20.1-14.el9_2.1                   appstream

1.2. 配置官方仓库

[root@RockyLinux9 ~]# cat /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[root@RockyLinux9 ~]# dnf list nginx
Available Packages
nginx.x86_64                    1:1.26.0-1.el9.ngx                nginx-stable

1.3. 安装

[root@RockyLinux9 ~]# dnf install -y nginx

1.4. 服务启动并配置开机自启

[root@RockyLinux9 ~]# systemctl enable nginx --now

1.5. 查看服务状态

[root@RockyLinux9 ~]# systemctl status nginx

1.6. 查看版本及默认编译依赖项

[root@RockyLinux9 ~]# nginx -V
nginx version: nginx/1.26.0
built by gcc 11.3.1 20221121 (Red Hat 11.3.1-4) (GCC)
built with OpenSSL 3.0.7 1 Nov 2022
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-http_v3_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'

1.7. 二进制包安装的默认位置

[root@RockyLinux9 ~]# rpm -ql nginx
/etc/nginx					# 配置文件目录
......
/usr/lib64/nginx/modules				# 模块安装目录
/usr/sbin/nginx			# 二进制程序
/usr/share/nginx/html				# 网站根目录
/var/cache/nginx				# 缓存目录
/var/log/nginx				# 日志目录

1.8. 查看Web页面

  • URL:http://ip(若外部无法访问,请查看防火墙状态)

2. 源码编译安装

2.1. 安装相关编译工具

[root@RockyLinux9 ~]# dnf update
[root@RockyLinux9 ~]# dnf install -y gcc make pcre pcre-devel zlib zlib-devel openssl openssl-devel

2.2. 创建运行用户

[root@RockyLinux9 ~]# useradd -r -s /usr/sbin/nologin nginx

2.3. 下载源码包并解压

[root@RockyLinux9 ~]# curl -O https://nginx.org/download/nginx-1.26.0.tar.gz
[root@RockyLinux9 ~]# tar xf nginx-1.26.0.tar.gz
[root@RockyLinux9 ~]# cd nginx-1.26.0/

2.4. 编译安装

  • configure支持的参数URL:Building nginx from Sources
[root@RockyLinux9 nginx-1.26.0]# mkdir /usr/local/nginx
[root@RockyLinux9 nginx-1.26.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module
[root@RockyLinux9 nginx-1.26.0]# make && make install

2.5. 修改配置目录用户及属组

[root@RockyLinux9 nginx-1.26.0]# chown -R nginx:nginx /usr/local/nginx/
[root@RockyLinux9 nginx-1.26.0]# ll /usr/local/nginx/
total 4
drwxr-xr-x. 2 nginx nginx 4096 May  9 22:32 conf	# 配置文件目录
drwxr-xr-x. 2 nginx nginx   40 May  9 22:32 html	# 网站根目录
drwxr-xr-x. 2 nginx nginx    6 May  9 22:32 logs	# 日志目录
drwxr-xr-x. 2 nginx nginx   19 May  9 22:32 sbin	# 二进制程序目录

2.6. 创建程序软连接

[root@RockyLinux9 nginx-1.26.0]# ln -sv /usr/local/nginx/sbin/nginx /usr/sbin/nginx
'/usr/sbin/nginx' -> '/usr/local/nginx/sbin/nginx'

2.7. 查看版本及编译属性

[root@RockyLinux9 nginx-1.26.0]# nginx -V
nginx version: nginx/1.26.0
built by gcc 11.4.1 20230605 (Red Hat 11.4.1-2) (GCC)
built with OpenSSL 3.0.7 1 Nov 2022
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module

2.8. 启动服务

[root@RockyLinux9 ~]# nginx
[root@RockyLinux9 ~]# ps -ef|grep nginx
root       44079       1  0 22:40 ?        00:00:00 nginx: master process nginx
nginx      44080   44079  0 22:40 ?        00:00:00 nginx: worker process
root       44082   38412  0 22:40 pts/0    00:00:00 grep --color=auto nginx

2.9. 查看Web页面

  • URL:http://ip

2.10. 停止服务

[root@RockyLinux9 ~]# nginx -s stop

2.11. 编写nginx服务文件

[root@RockyLinux9 ~]# cat /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx
Documentation=https://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
LimitNOFILE=100000

[Install]
WantedBy=multi-user.target

2.12. 修改配置文件nginx.conf,删除pid注释

[root@RockyLinux9 ~]# vim /usr/local/nginx/conf/nginx.conf
pid        logs/nginx.pid;

# 校验文件
[root@RockyLinux9 ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

2.13. 启动服务

# 加载服务脚本
[root@RockyLinux9 ~]# systemctl daemon-reload
# 启动服务
[root@RockyLinux9 ~]# systemctl start nginx
# 查看服务状态
[root@RockyLinux9 ~]# systemctl status nginx

2.14. 导入man手册

# 拷贝文件
[root@RockyLinux9 ~]# cp nginx-1.26.0/man/nginx.8 /usr/share/man/man8/
# 更新man db库
[root@RockyLinux9 ~]# mandb
# 查看nginx确认
[root@RockyLinux9 ~]# whereis nginx
nginx: /usr/sbin/nginx /usr/local/nginx /usr/share/man/man8/nginx.8

来自: 学习Nginx(二):版本介绍和安装

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

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

相关文章

Nvidia Jetson编译安装Opencv With CUDA,完善GSTREAMER功能

简介 Nvidia Jetson 官方刷机流程结束以后,虽然安装了opencv,但是此版本是CPU版本,并且不包含Cpp版本。如果想要完整的OpenCV支持,需要从源码编译。本文介绍如何下载编译,并安装OPENCV库,并获得完整的CUDA…

必应bing广告开户费用介绍,必应搜索广告推广开户服务!

微软必应Bing搜索引擎广告成为了企业提升品牌知名度与市场份额的有效途径之一,作为全球第二大搜索引擎,在中国市场正逐步展现出其独特的广告价值与潜力。对于希望拓展在线市场的中国企业而言,通过云衔科技开启必应Bing国内广告推广之旅&#…

谷歌外贸seo优化怎么做?

一般有两种选择,在大型电商平台开展业务,如亚马逊,阿里巴巴等平台,也可以选择搭建自己的独立站 选择在大型电商平台可以方便迅速建立起自己的商铺,不需要考虑太多交易,支付,物流等方面的问题&am…

2024.05.14 Diffusion 代码学习笔记

配环境 我个人用的是Geowizard的环境:https://github.com/fuxiao0719/GeoWizard。 出于方便考虑,用的pytorch官方的docker容器,因此python版本(3.10)和原作者(3.9)不同,其余都是一…

Java小游戏之汤姆猫

背景: 博主写过羊了个羊小游戏,客户觉得羊了个羊同学写过了,想换一个,于是笔者想到了汤姆猫。就是那个以前在苹果手机上的猫。 过程: 初始会有一个猫的图片展示,然后你点击按钮,猫会有不同动作…

力扣刷题 day2

快乐数 202. 快乐数 - 力扣(LeetCode)   图: java // 快乐数 --> 19 > 1^2 9 ^2 82 > 82 > 8 ^ 2 2 ^ 2 ......public boolean isHappy(int n) {// 使用快慢指针int slow n, fast getSum(n);while (slow ! fast) {slow getSum(slo…

【Day3:JAVA运算符、方法的介绍】

目录 1、运算符1.1 赋值运算符1.2 比较运算符1.3 逻辑运算符1.3.1 逻辑运算符概述1.3.2 逻辑运算符分类1.3.3 短路的逻辑运算符 1.4 三元运算符1.5 运算符优先级 2、方法2.1 方法介绍2.2 方法的定义和调用格式2.2.1 方法的调用2.2.2 带参数方法的调用2.2.3 带返回值方法的调用2…

Zookeeper and RPC dubbo

javaguide zookeeper面试题 Zookeeper 啥是Zookeeper干啥的 ZooKeeper 可以被用作注册中心、分布式锁; ZooKeeper 是 Hadoop 生态系统的一员; 构建 ZooKeeper 集群的时候,使用的服务器最好是奇数台。 启动ZK 下载安装解压 不过多赘述 我的…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-15.7讲 GPIO中断实验-编写按键中断驱动

前言: 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

luceda ipkiss教程 66:金属线的钝角转弯

案例分享:金属线的135度转弯: 所有代码如下: from si_fab import all as pdk import ipkiss3.all as i3 from ipkiss.geometry.shape_modifier import __ShapeModifierAutoOpenClosed__ from numpy import sqrtclass ShapeManhattanStub(__…

使用Rufus制作Ubuntu启动盘(windows同理)

问题 想要做系统,首先需要做启动盘,使用Rufus做启动盘操作简单。 解决 1.下载Rufus 这个软件免费的一搜便是,这里下载:Rufus - 轻松创建 USB 启动盘。下载完成后即点即用1无需安装。 打开 2.下载Ubuntu镜像 下载地址&#xff…

Flowable配置多数据源以及指定schema

异常反馈 如有问题可通过微信公众号“假装正经的程序员”反馈 为什么要多源 在项目的实际开发过程中通常会有两种常见的使用Flowable的方式,一种是以独立的服务提供工作流的能力,另一种是以Jar包的形式进行内部集成。 这两种方式各有利弊,…

暴力数据结构之二叉树(堆的相关知识)

1. 堆的基本了解 堆(heap)是计算机科学中一种特殊的数据结构,通常被视为一个完全二叉树,并且可以用数组来存储。堆的主要应用是在一组变化频繁(增删查改的频率较高)的数据集中查找最值。堆分为大根堆和小根…

购买商用ssl证书并在windows服务器IIS上配置https域名(案例为阿里云)

阿里云、华为云等各路云都有ssl证书购买,价格相差不大,操作也都差不多,请自行选择。 本文以阿里云操作为案例。 购买SSL证书 点击购买 付款买入 注意,如果自己搞起来有问题,阿里购买的时候建议选择申请协助服务。购买…

抖店商品详情API接口(店铺|标题|主图|价格|SKU属性等)

抖店商品详情API接口(店铺|标题|主图|价格|SKU属性等) 抖店商品详情API接口是指通过调用抖音开放平台提供的接口,获取抖店上商品的详细信息的方法。 抖店开放平台提供了一系列的接口,可以用于获取商品的基本信息、价格、库存、销量、评价等各种信息。以…

Python 全栈体系【四阶】(四十四)

第五章 深度学习 九、图像分割 3. 常用模型 3.4 DeepLab 系列 3.4.3 DeepLab v3(2017) 在DeepLab v3中,主要进行了以下改进: 使用更深的网络结构,以及串联不同膨胀率的空洞卷积,来获取更多的上下文信…

利用管道通信(pipe)测量进程间的上下文切换(context switch)开销

利用管道通信(pipe)测量进程间的上下文切换(context switch)开销 《https://pages.cs.wisc.edu/~remzi/OSTEP/cpu-mechanisms.pdf》 Measuring the cost of a context switch is a little trickier. The lmbench benchmark does so by running two processes on a single CPU…

【LabVIEW FPGA入门】NI 环境安装教程

注意:安装软件之前关闭杀毒软件,避免安装时损坏,安装完成在使用杀毒软件。 步骤1:判断自己是否需要LabVIEW 编程。 下面这几种情况可以调过安装LabVIEW: 不需要LabVIEW或其他语言编程,直接在MAX或仪器软面板…

短视频素材该去哪里找?分享8个短视频剪辑必备的素材大全

在短视频创作与运营中,素材的找寻常常成为创作者的最头疼的事,因为它既要求不侵犯版权,又追求内容的优质性。然而,今天我要为大家揭晓一些剪辑短视频素材库的宝藏网站,它们将成为你创作旅程中的得力帮手,让…

动态手势识别(VGG11)

学校的大作业要做一个视频图像处理相关的,就做了动态手势识别 VGG代码 import torch import torch.nn as nnclass VGG_11_3D(nn.Module):def __init__(self, num_classes, pretrainedFalse):super(VGG_11_3D, self).__init__()self.conv1 nn.Conv3d(3, 64, kernel…