Linux(CentOS)安装 Nginx

CentOS版本:CentOS 7

Nginx版本:1.24.0

两种安装方式:

一、通过 yum 安装,最简单,一键安装,全程无忧。

二、通过编译源码包安装,需具备配置相关操作。

最后附+:设置 Nginx 服务开机启动

一、通过 yum 安装

需要 root 权限,普通用户使用 sudo 进行命令操作

安装参考信息:https://nginx.org/en/linux_packages.html#RHEL

1、安装依赖

复制代码
sudo yum install yum-utils

2、创建仓库文件

在 /etc/yum.repos.d 目录下创建仓库文件nginx.repo,并在文件中添加以下内容:

复制代码
sudo vim /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

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

3、安装 Nginx

默认情况下,安装 Stable version当前稳定版本

【sudo yum-config-manager --enable nginx-mainline 不会设置,暂时不会安装指定版本】

复制代码
sudo yum install nginx

查看 nginx 安装目录

复制代码
whereis nginx

/usr/sbin 目录存放 nginx 启动程序

/etc/nginx 目录存放 nginx 配置文件

/usr/share/html 目录存放网站项目文件

4、开放端口 80

检查端口是否开放

复制代码
sudo firewall-cmd --zone=public --query-port=80/tcp

开放端口

复制代码
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent

重新加载

复制代码
sudo firewall-cmd --reload

再检查端口是否开放

复制代码
sudo firewall-cmd --zone=public --query-port=80/tcp

5、启动 Nginx

复制代码
sudo nginx

6、验证 Nginx

在远程终端,打开浏览器,输入ip,回车

二、通过编译源码包安装

需要 root 权限,使用 root 用户进行命令操作

编译源码包:.tar.gz 或 .tar 包文件

1、下载 Nginx

在远程终端计算机上,打开Nginx官网:https://nginx.org/,下载文件

2、上传 Nginx 文件到 CentOS

使用FinalShell远程登录工具,并且使用 root 用户连接登录(注意这里说的root用户连接登录是指这样的)


也可以使用 wget 命令直接下载到 CentOS,前提需要安装好 wget

获取下载地址:https://nginx.org/download/nginx-1.26.2.tar.gz

复制代码
wget https://nginx.org/download/nginx-1.26.2.tar.gz


3、解压 Nginx

创建目录/export/server

复制代码
mkdir -p /export/server

解压到目录/export/server

.tar.gz 格式的为打包压缩,使用 tar -zxvf,解压后是一个与文件名同名的目录。

.tar 格式的为打包不压缩,使用 tar -xvf,解压后是相关的文件,不是目录。

复制代码
tar -zxvf nginx-1.24.0.tar.gz -C /export/server

查看解压后情况

复制代码
ls -l /export/server

4、安装编译环境和依赖

安装 gcc-c++ 编译器

因为 nginx 是使用C语言开发的,所以需要安装相关的编译环境来对其进行编译安装

复制代码
yum -y install gcc-c++

复制代码
yum install -y openssl openssl-devel

安装 pcre

PCRE(Perl Compatible Regular Expressions)是一个用C语言编写的正则表达式函数库,nginx 对其有依赖

复制代码
yum install -y pcre pcre-devel

安装 zlib

zlib 是一个提供数据压缩的函数库,nginx 对其有依赖

复制代码
yum install -y zlib zlib-devel

5、安装 Nginx

进入到解压后的 nginx 目录下/export/server/nginx-1.24.0

复制代码
cd /export/server/nginx-1.24.0

查看目录内容

复制代码
ls -l

配置安装目录,将安装到/export/server/nginx 这个目录下

复制代码
./configure --prefix=/export/server/nginx

执行 make 和 make install 命令进行编译安装

编译

复制代码
make

安装

复制代码
make install

查看安装后的情况,目录/export/server 中多了 nginx 目录

复制代码
ls -l /export/server

查看目录 /export/server/nginx 的内容

复制代码
ls -l /export/server/nginx

6、开放端口 80

检查端口是否开放

复制代码
firewall-cmd --zone=public --query-port=80/tcp

开放端口

复制代码
firewall-cmd --zone=public --add-port=80/tcp --permanent

重新加载

复制代码
firewall-cmd --reload

再检查端口是否开放

复制代码
firewall-cmd --zone=public --query-port=80/tcp

7、启动 Nginx

进入到 nginx 安装目录下的 sbin,即是目录 /export/server/nginx/sbin,查看目录内容

复制代码
cd /export/server/nginx/sbin

ls -l

启动 nginx

复制代码
./nginx

查看 nginx 相关的进程

复制代码
ps -ef | grep nginx

8、验证 Nginx

在其他终端,打开浏览器,输入ip,回车

9、删除编译源码包和安装解压目录

删除编译源码包 nginx-1.24.0.tar.gz

复制代码
rm /root/nginx-1.24.0.tar.gz

删除安装解压目录 /export/server/nginx-1.24.0

复制代码
rm -rf /export/server/nginx-1.24.0

附+:设置 Nginx 服务开机启动

需要 root 权限,使用 root 用户进行命令操作

原理:利用 systemctl 管理服务

1、新建服务

在/usr/lib/systemd/system 目录下,新建 nginx.service 文件,配置内容

复制代码
vim /usr/lib/systemd/system/nginx.service

配置内容如下:

复制代码
[Unit]
Description=Nginx Server
After=nginx.service

[Service]
User=root
Group=root
Type=forking
ExecStart=/export/server/nginx/sbin/nginx -c /export/server/nginx/conf/nginx.conf
ExecStop=/export/server/nginx/sbin/nginx -s quit
ExecReload=/export/server/nginx/sbin/nginx -s reload
Restart=on-failure
PrivateTmp=true

[Install]
WantedBy=multi-user.target

2、重新加载systemctl

复制代码
systemctl daemon-reload

3、启动Nginx

复制代码
systemctl start nginx.service;ps -ef | grep nginx

4、设置 Nginx 开机启动

设置开机启动

复制代码
systemctl enable nginx.service

查看设置情况

复制代码
systemctl is-enabled nginx

5、重启计算机

复制代码
reboot

6、验证Nginx 开机启动

复制代码
systemctl status nginx.service;ps -ef | grep nginx

附+:Nginx 的其他命令

1、取消 Nginx 开机启动

复制代码
systemctl disable nginx.service

2、重启 Nginx

当前 Nginx 运行或停止状态都可以 restart

复制代码
systemctl restart nginx.service

只能在当前 Nginx 运行状态 reload

复制代码
systemctl reload nginx.service

3、停止 Nginx

复制代码
systemctl stop nginx.service
相关推荐
dddwjzx5 分钟前
嵌入式Linux C应用编程入门——进程 ( 二 )
linux·嵌入式
jieyucx2 小时前
【系统安全铁律】解密 Linux 权限三色数字密码:chmod 最小化赋权与生产环境避坑指南
linux·安全·系统安全·权限·chmod·777
AOwhisky3 小时前
Linux(CentOS)系统管理入门笔记(第四期)——文件系统(下篇):文件与目录操作实战——cpmvmkdirrmln
linux·运维·笔记·centos·云计算·文件系统
岑梓铭3 小时前
考研408《操作系统》复习笔记,第四章《4.2.2 文件操作、文件共享、文件保护》
linux·考研·操作系统·文件系统·408
Mr.HeBoYan3 小时前
DPDK为什么越来越少使用rte_ring?——从Lock-Free到Run-to-Completion,重新理解现代DPDK架构演进(上)
linux·网络·算法·性能优化·架构·dpdk
北冥you鱼4 小时前
Go语言sync包在区块链开发中的数据同步实践
golang·centos·区块链
云栖梦泽4 小时前
从 IMX415 摄像头驱动理解 Media Controller 框架
linux·开发语言·c++·嵌入式硬件
纳兰青华4 小时前
CentOS Stream 9 下载与安装完全指南:为什么它是当前最稳妥的选择?
linux
草邦设计开发团队_媒体资源平台5 小时前
Linux 稳定常驻启动 PHP 队列,服务器重启自动恢复
linux·服务器·php·队列执行
章老师说5 小时前
NGINX官方谈Lua风险:这其实是两条网关技术路线之争
运维·nginx·负载均衡·lua·openresty