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

版本

        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.hqwc.cn/news/707312.html

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

相关文章

高校学生如何去除bing首页的热搜榜以及搜索框的隐形提示?

高校学生如何去除bing首页的热搜榜以及搜索框的隐形提示? 在微软首页登录学生账户,当点击打开new tab选项之后,新展示的页面如下图所示。

新人学习笔记值(初始JavaScript)

一、Java Script是什么 1.Java Script是世界上最流行的语言之一,是一种运行在客户端的脚本语言(script是脚本的意思) 2.脚本语言:不需要编译,运行过程中由js解释器(js引擎)进行解释并运行 3.现在…

【环境配置】vsCode 中使用 conda 配置虚拟环境

文章目录 准备前言在 vsCode 中直接创建创建步骤测试更新环境 使用 Anaconda 建立虚拟环境创建步骤在 vsCode 中选择环境 总结 准备 在看本博客之前,希望大家有以下知识储备: 能够正确安装 vsCode,并配置好 python 环境;了解并安…

系统架构师考试(三)

逆向工程 战机拆解、买个新手机来拆 领域级已经到达需求了,实体关系模型ERUML B、C 净室软件工程 最后一句,总体太大时必须采用抽样方法

STC8增强型单片机开发【热敏电阻】

目录 一、引言 二、热敏电阻概述 三、STC8增强型单片机简介 四、基于STC8单片机的热敏电阻测温系统 五、热敏电阻测温系统的优化与扩展 提高测量精度 扩展系统功能 六、 温度计算步骤 通过ADC采样计算出热敏电阻位置的电压 通过欧姆定律计算热敏电阻的阻值 通过阻值…

HNCTF_RE复现(一)

baby_python hnctf.yuanshen.life:33276 网页打不开,只能 nc 连接远程服务器。 运行没有回显 利用pickletools库进行反编译为字节码(不知道为什么) # Python 3.10.12 from pickle import loads import pickletools main b"\x80\x04ct…

医学科技查新中对查新点的撰写方法!附案例讲解!

我国的科技查新工作最早是从医学领域开始的,始于1985年中国科学院医学情报所,后来逐步发展到工、农等其 他各个领域。医学科技查新包括立项查新和成果查新两个部分,其中医学立项查新,它是指在医学科研项目申报开题之前&#xff0c…

策略模式详解

策略模式 1 概述 先看下面的图片,我们去旅游选择出行模式有很多种,可以骑自行车、可以坐汽车、可以坐火车、可以坐飞机。 作为一个程序猿,开发需要选择一款开发工具,当然可以进行代码开发的工具有很多,可以选择Idea进…

直播卖券有妙招:实景ai无人直播系统帮助商家自动化团购直播!

在数字化浪潮席卷的今天,直播卖券已成为商家推广和营销的重要手段。然而,如何高效、精准地利用直播卖券,让每一位观众都能沉浸在购物的乐趣中,成为商家们迫切需要解决的问题。幸运的是,实景AI无人直播系统应运而生&…

【刷题篇】二分查找(二)

文章目录 1、山脉数组的峰顶索引2、寻找峰值3、寻找旋转排序数组中的最小值4、LCR 点名 1、山脉数组的峰顶索引 符合下列属性的数组 arr 称为 山脉数组 &#xff1a; arr.length > 3 存在 i&#xff08;0 < i < arr.length - 1&#xff09;使得&#xff1a; arr[0] &l…

【错题集-编程题】空调遥控(二分 / 滑动窗口)

牛客对应题目链接&#xff1a;空调遥控 (nowcoder.com) 一、分析题目 1、滑动窗口 先排序&#xff0c;然后维护窗口内最大值与最小值的差在 2 * p 之间&#xff08;max - min&#xff09;。 2、二分查找 先排序&#xff0c;然后枚举所有的温度&#xff0c;⼆分出符合要求的…

李宏毅-Self-attention机制详解

原视频链接&#xff1a;attention 一. 基本问题分析 1. 模型的input 无论是预测视频观看人数还是图像处理&#xff0c;输入都可以看作是一个向量&#xff0c;输出是一个数值或类别。然而&#xff0c;若输入是一系列向量&#xff0c;长度可能会不同&#xff0c;例如把句子里的…