linux系统离线安装nginx

news2025/6/8 19:13:52

介绍:nginx是一个高性能的http和反向代理服务器,并发能力很强,一般用来做负载均衡比较多,日常开发中用作web服务器

说明:本文用到的所有资源,笔者已经打包上传了,需要下载的请于文章顶部下载

一、下载nginx

地址:nginx: download

我们下载这个稳定版本

 二、环境依赖检查

nginx安装需要很多外部依赖,先登录到linux服务器

2.1 gcc检查

gcc -v

 出现如下,说明gcc是安装了的

如果最后一行没有出现对应版本信息,那就要去手动下载了 

提供个阿里云镜像地址:centos-7-os-x86_64-Packages安装包下载_开源镜像站-阿里云

gcc 清单 

cpp-4.8.5-44.el7.x86_64.rpm
gcc-4.8.5-44.el7.x86_64.rpm
glibc-devel-2.17-317.el7.x86_64.rpm
glibc-headers-2.17-317.el7.x86_64.rpm
kernel-headers-3.10.0-1160.el7.x86_64.rpm
libmpc-1.0.1-3.el7.x86_64.rpm
mpfr-3.1.1-4.el7.x86_64.rpm

 一个个找到下载,小技巧:可以直接复制名字定位,ctrl+f

把下载好的gcc依赖统一上传到服务器的某个文件夹下,或者把笔者提供的zip包上传上去,解压即可,以下是几个解压相关的命令

1.解压缩zip文件到当前目录:

unzip file.zip

2.解压缩zip文件到指定目录:

unzip file.zip -d /path/to/directory 

3. 查看zip文件内容而不解压缩:

unzip -l file.zip 

如果没有安装unzip命令,可以通过以下命令在大多数Linux发行版中安装(需要连接网络): 

sudo apt install unzip # 对于基于Debian的发行版(如Ubuntu)
sudo yum install unzip # 对于基于RPM的发行版(如Fedora、CentOS)

不想安装unzip,那就都单独上传到同一个文件夹下即可 

然后在这个文件夹下执行以下命令

rpm -Uvh *.rpm --nodeps --force

2.2 PCRE检查

以下是百度百科的介绍

PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括perl 兼容的正则表达式库。这些在执行正规表达式模式匹配时用与Perl 5同样的语法和语义是很有用的。Boost太庞大了,使用boost regex后,程序的编译速度明显变慢。测试了一下,同样一个程序,使用boost::regex编译时需要3秒,而使用pcre不到1秒。因此改用pcre来解决C语言中使用正则表达式的问题

为什么要这个库?因为nginx是使用C语言开发的,为了实现高性能,用到了这个库

在服务器上执行

rpm -qa | grep pcre

可以看到笔者的服务器已经安装了这个依赖 

如果没有出现这些信息说明没有安装,需要自行下载 

下载地址:https://www.pcre.org/

点进去有个版本介绍

翻译下:

PCRE库有两个主要版本。目前的版本PCRE2于2015年发布,目前为10.39版本。

较早但仍广泛部署的PCRE库最初于1997年发布,版本为8.45。这一版本的PCRE现在已经寿终正寝,不再积极维护。8.45版本预计将是旧的PCRE库的最终版本,新项目应该使用PCRE2。

 继续点击这个,外网有点慢

有很多版本,这里以最新版举例

 

下载下来后上传到linux服务器某个文件夹下(笔者已上传资源包)

执行解压命令

tar -xvf pcre2-10.43.tar.gz 

cd进入解压后的目录下依次执行

./configure (后面可加 --prefix=yourpath,安装到指定路径,一般不加,就安装到默认路径下)
make
make install

2.3 zlib检查

百度介绍:

zlib是一种用于数据压缩和解压缩的开源软件库。它使用的是压缩算法为DEFLATE,可以有效地压缩和解压缩大部分数据。

zlib可以被广泛应用于许多不同的场合,例如软件安装包的压缩、数据库文件的压缩、网络数据传输的压缩等。它的使用方法简单,支持多种编程语言,且具有较高的压缩率和解压率。

zlib的优点是可以有效地压缩和解压缩大部分数据,使用方法简单,支持多种编程语言,并且具有较高的压缩率和解压率。缺点是压缩率不如其他一些算法高,例如bzip2和LZMA。

zlib是一个轻量级的库,可以在不同的系统平台上使用。它的源代码可以在网络上免费下载,并且具有较高的可移植性。zlib支持的压缩格式为DEFLATE,可以有效地压缩和解压缩大部分数据。

zlib提供了一组简单的函数来实现数据的压缩和解压缩。它支持多种编程语言,例如C、C++、Java、Python等,可以方便地在这些语言中使用。zlib提供的函数包括压缩数据的compress函数和解压缩数据的uncompress函数。这两个函数的使用方法非常简单,只需要提供待压缩或解压缩的数据和目标缓冲区的地址即可。

zlib还提供了一些高级的函数,可以支持更复杂的压缩和解压缩操作。例如,可以使用deflateInit、deflate和deflateEnd函数来进行流式压缩,可以使用inflateInit、inflate和inflateEnd函数来进行流式解压缩。

总的来说,zlib是一种非常方便的数据压缩和解压缩工具,它可以有效地压缩和解压缩大部分数据,并且使用方法简单,支持多种编程语言。

在服务器上执行

rpm -qa | grep zlib 

笔者所在linux系统已经安装zlib 

没有如上信息,要下载安装

地址:zlib Home Site

zlib是这两位开发的,前者写压缩算法,后者写解压缩算法

往下划 ,找到这个点击下载

下载好后上传到服务器某文件夹下

执行解压命令

tar -zxvf zlib.tar.gz

再cd 到解压后的zlib目录顺序执行

./configure (后面可加 --prefix=yourpath,安装到指定路径,一般不加,就安装到默认路径下)
make
make install 

2.4  openssl检查

服务器上输入

openssl version

很抱歉,笔者的服务器也已经安装了openssl,你如果没有出现对应信息,需要自己下载安装

下载地址:[ Downloads ] - /source/index.html 

这里举例下载的是这个最新版

下载好后,同样的上传到服务器某个文件夹下解压

执行命令

tar -zxvf openssl-3.3.0.tar.gz 

然后进入解压目录依次执行如下

 ./configure (后面可加 --prefix=yourpath,安装到指定路径,一般不加,就安装到默认路下)
make
make install

三、安装nginx 

以上外部依赖都准备好后,可以安装nginx了

首先把下载的nginx压缩包上传到服务器某文件下,笔者这里上传到/opt/nginx下

依次执行如下命令 

cd /opt/nginx

tar -zxvf nginx-1.24.0.tar.gz

cd nginx-1.24.0/

进入解压后的文件夹下执行如下,这里配置安装到/usr/local下

./configure  (--prefix=/usr/local/nginx,这是指定安装到某个路径下,如果不指定,则默认也是安装到这个路径下,没有nginx文件夹会自动创建)
make
make install

我这里执行完第一句报错了,我重新安装下PCRE库(按照上述pcre流程来)

 

安装好后再进入nginx的解压目录

 

执行这个./configure

make

make install

四、启动nginx

接着启动nginx

cd /usr/local/nginx/sbin/

./nginx

 nginx的默认启动端口是80

输入以下命令查看端口80

sudo lsof -i :80

可以看到80端口被nginx监听了 

 把80端口的访问权限打开

-- 开通 80 端口 访问权限

sudo firewall-cmd --permanent --add-port=80/tcp

-- 重载防火墙

sudo firewall-cmd --reload

浏览器访问下:192.168.19.16:80 ,说明nginx启动成功了

 

修改端口,比如改成8081(注意先把8081端口的防火墙开启,命令参考上面)

cd /usr/local/nginx/conf

vim nginx.conf 

按 i 键,把监听端口改成8081

esc 退出,输入:wq 保存

再执行以下命令

cd /usr/local/nginx/sbin/

./nginx

这时候浏览器访问 192.168.19.16:8081,修改成功了

 

 

这里有个问题,之前的端口80,nginx服务我没有停用,浏览器打开192.168.19.16:80,还是可以访问的

 

 

服务器查看80和8081端口,发现都被nginx监听了 

既然修改了端口,那原先的不应该再监听了,杀死80端口对应nginx的pid

kill 22698

发现80端口不再被nginx监听,释放出来了,浏览器也无法访问 

 

 到这里nginx 已经启动好了

五、设置开机自启动

这里采用Systemd方式,把nginx作为系统服务,设置开机自启动

首先执行以下命令

sudo vim /etc/systemd/system/nginx.service

创建一个nginx系统服务文件,按 i 键并输入以下内容,esc键退出,:wq保存

注意 /usr/local/nginx要替换成自己的nginx的安装路径(不是解压路径)

nginx -s quit # 这种方法较stop相比就比较温和,需要进程完成当前工作后再停止。

nginx -s stop # 立即停止服务 这种方法比较强硬,无论进程是否在工作,都直接停止进程

如果想温和退出nginx,ExecStop换成如下

ExecStop=/usr/local/nginx/sbin/nginx -s quit

[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target

[Service]
Type=forking
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop

[Install]
WantedBy=multi-user.target

以上保存退出后依次执行以下命令

先把之前启动的nginx服务进程杀掉

刷新配置

sudo systemctl daemon-reload

允许nginx自启动

sudo systemctl enable nginx.service

启动nginx

sudo systemctl start nginx.service

查看开机自启动的服务列表

systemctl list-units --type=service

 

查看nginx服务的状态

sudo systemctl status nginx.service

 浏览器输入 192.168.19.16:8081 是可以访问的

停止nginx服务

sudo systemctl stop nginx.service 

reboot重启验证nginx是否开机自启动

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

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

相关文章

【PDF技巧】带有限制编辑的PDF文件,如何编辑?

PDF文件打开之后发现设置了限制编辑,功能栏中的编辑按钮都是灰色的,导致PDF文件里的内容无法编辑。那么带有限制编辑的PDF文件,如何编辑?今天分享两个方法。 方法一: 我们可以将PDF文件转换成其他格式,有…

损失函数:BCE Loss(二元交叉熵损失函数)、Dice Loss(Dice相似系数损失函数)

损失函数:BCE Loss(二元交叉熵损失函数)、Dice Loss(Dice相似系数损失函数) 前言相关介绍BCE Loss(二元交叉熵损失函数)代码实例直接计算函数计算 Dice Loss(Dice相似系数损失函数&a…

【讲解下常见的分类算法】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

医疗器械UDI码的DI和PI什么意思

一、理解医疗器械UDI 医疗器械的UDI码是Unique Device Identifier Code的缩写,意为唯一设备识别码。 医疗器械的UDI码是唯一设备识别码,由两个部分组成:DI和PI。 1.1、DI 理解 DI(Device Identifier,设备标识符&am…

STM32F407单片机通用24CXXX读写程序(KEIL),兼容24C系列存储器(24C01到24C512),支持存储器任意地址跨页连续读写多个页

STM32F407单片机通用24CXXX读写程序(KEIL),兼容24C系列存储器(24C01到24C512),支持存储器任意地址跨页连续读写多个页 Chapter1 STM32F407单片机通用24CXXX读写程序(KEIL)&#xff0…

「每日跟读」英语常用句型公式 第9篇

「每日跟读」英语常用句型公式 第9篇 1. Go-to ___ 第一选择___ What’s your go-to snack when you’re hungry? (你饿的时候第一选择的零食是什么?) Who’s your go-to friend for advice? (你第一选择的朋友是谁来寻求建议?) Which is your go-t…

子域名是什么?有什么作用?

在互联网世界中,域名是我们访问网站的关键。每一个公司的网站都需要拥有自己的域名,其中有些大型公司的网站还不止一个域名,除了主域名外还拥有子域名。有些人感到非常困惑,不知道子域名是什么。其实子域名也就是平时所说的二级域…

MapReduce过程解析

一、Map过程解析 Read阶段:MapTask通过用户编写的RecordReader,从输入的InputSplit中解析出一个个key/value。Map阶段:将解析出的key/value交给用户编写的Map()函数处理,并产生一系列的key/value。Collect阶段:在用户编…

YOLOv5实例分割

目录 一,准备工作 1.1 标签数据解释: 1.2 数据集格式转换方法汇总 图片和JSON在一个文件夹的形式,通过下面的代码会再相同文件夹下生成对应的txt文件 方式2: 二,训练、测试、检测 一,准备工作 用conda创建自己的环境 安装项目路径下的requirements.txt 数据集准备…

Socks5代理IP使用教程

当我们在互联网上浏览网页、下载文件或者进行在线活动时,隐私和安全问题常常被提及。在这样的环境下,一个有效的解决方案是使用Sock5IP。本教程将向您介绍Sock5IP的使用方法,帮助您保护个人隐私并提升网络安全。 一、什么是Sock5IP&#xff1…

SpringMVC中拦截所有请求后,<mvc:resources/>不起作用

报错显示 出现这种问题的前提是&#xff0c;用DispatcherServlet将所有的请求拦截&#xff0c;然后导致静态资源无法访问。 拦截代码如下&#xff0c;配置卸载web.xml文件中。 <servlet><servlet-name>dispatcherServlet</servlet-name><servlet-class&…

4月11号总结

java学习 一.io流 简介&#xff1a;io&#xff0c;i代表in&#xff0c;指的是输入&#xff0c;o代表输出。io流是用于处理输入和输出数据的机制。Java的io流主要分为字节流和字符流两种类型。这些流可以用于读取和写入不同类型的数据&#xff0c;如文本&#xff0c;图片&#…

【MATLAB 预测算法教程】_1粒子群算法优化BP神经网络预测 - 教程和对应MATLAB代码

本文以MATLAB自带的脂肪数据集为例,将数据保存在EXCEL工作簿内,方便替换数据使用,以下介绍粒子群算法优化BP神经网络预测的MATLAB代码编写,主要流程包括1. 读取数据 2.划分训练集和测试集 3.归一化 4.确定BP神经网络的隐含层最优节点数量 5. 使用粒子群算法优化BP的神经网络…

C++模板初阶(个人笔记)

模板初阶 1.泛型编程2.函数模板2.1函数模板的实例化2.2模板参数的匹配规则 3.类模板3.1类模板的实例化 1.泛型编程 泛型编程&#xff1a;编写与类型无关的通用代码&#xff0c;是代码复用的一种手段。模板是泛型编程的基础。 //函数重载 //交换函数的逻辑是一致的&#xff0c…

探索设计模式的魅力:MVVM模式在AI大模型领域的创新应用-打破传统,迎接智能未来

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 MVVM模式在AI大模型领域的创新应用-打破传统迎接智能未来 &#x1f680; “在人工智能的领域里&a…

实验8 内置对象session

一、实验目的 掌握怎样在JSP中使用内置对象session 二、实验项目内容&#xff08;实验题目&#xff09; 编写代码&#xff0c;掌握session的用法。【参考课本4.6.5 】 三、源代码以及执行结果截图&#xff1a; choiceGrade.jsp <% page language"java" content…

顺序表实战——基于顺序表的通讯录

前言&#xff1a;本篇文章主要是利用顺序表作为底层&#xff0c; 实现一个通讯录。偏向于应用&#xff0c; 对于已经学习过c的友友们可能没有难度了已经。没有学习过c的友友&#xff0c; 如果顺序表不会写&#xff0c; 或者说没有自己实现过&#xff0c; 请移步学习顺序表相关内…

代码随想录算法训练营Day14|二叉树理论基础和递归遍历

代码随想录卡哥视频 理论基础 需要了解 二叉树的种类&#xff0c;存储方式&#xff0c;遍历方式 以及二叉树的定义 文章讲解&#xff1a;代码随想录 递归遍历 &#xff08;必须掌握&#xff09; 二叉树的三种递归遍历掌握其规律后&#xff0c;其实很简单 题目链接/文章讲解/…

vue快速入门(十四)reduce求和

注释很详细&#xff0c;直接上代码 上一篇 新增内容 非嵌套情况求和嵌套情况求和 源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initia…

详解Spring event如何优雅实现系统业务解耦、实现原理及使用注意项

1.概述 在我们平时的项目业务系统开发过程中&#xff0c;一个需求功能的业务逻辑经常出现主线业务和副线业务之分。比如&#xff0c;在当下移动端电商app进行注册账号操作&#xff0c;注册成功之后会发送短信、邮箱、站内信等通知&#xff0c;发放红包活动抵用券&#xff0c;推…