linux系统离线安装nginx

介绍: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

  1. 查看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

bash 复制代码
[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是否开机自启动

相关推荐
路由侠内网穿透.1 分钟前
本地部署开源日志收集系统 Log Bull 并实现外部访问
运维·服务器·网络·数据库·开源
时空无限15 分钟前
linux mellanox 网卡队列 irq rps 相关
linux·运维
AlbertS35 分钟前
Let‘s Encrypt 证书自动续期并自动应用到Nginx
运维·nginx·ssl·cerbot·renew·续期
kdxiaojie39 分钟前
Linux 驱动研究 —— V4L2 (14)
linux·运维·笔记·学习
IMPYLH39 分钟前
HTML 的 <dl> 元素
linux·windows·html
如若12341 分钟前
Ubuntu 无 sudo 安装花生壳并实现 SSH 内网穿透:Conda 环境部署、冲突排查与自动启动
linux·运维·ubuntu·ssh·内网穿透
sevenll071 小时前
SqlKit - 覆盖 50+ 数据库的 AI 智能体 SQL 桌面客户端
数据库·人工智能·sql·智能体
承渊政道1 小时前
Linux系统学习【掌握Ext系列⽂件系统的相关内容】
linux·运维·学习·文件系统·存储结构·inode
数智化管理手记4 小时前
手工统计指标误差大、效率低?指标管理系统如何告别人工算数痛点?
大数据·运维·数据库·人工智能·云计算
Better Bench9 小时前
WSL2 Ubuntu 中 Claude CLI “command not found” 故障排查与修复
linux·ubuntu·claude·wsl·claudecode