一、安装

1、安装依赖

命令:yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

若出错,可重复执行该命令,直至成功。

在Debian及其衍生系统中使用命令:
sudo apt install -y g++ libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssl-dev

2、下载安装包

(1)命令下载

wget http://nginx.org/download/nginx-1.26.2.tar.gz

若没有未发现命令wget,则需先安装 wget,命令:yum install -y wget。

(2)手动下载

或去官网手动下载,网址:https://nginx.org/en/download.html

Nginx 安装过程_html

(3)复制到服务器

并将安装包移动或复制到目标目录 /usr/java

命令:mv nginx-1.26.2.tar.gz /usr/java

3、安装 nginx

(1)解压安装包

命令:cd /usr/java

命令:tar -zxf nginx-1.26.2.tar.gz

命令:cd nginx-1.26.2

 

Nginx 安装过程_html_02

(2)配置nginx

命令:./configure

 

Nginx 安装过程_html_03

Nginx 安装过程_html_04

若报错:C compiler cc is not found

 

Nginx 安装过程_html_05

 

修复:cc 通常是 gcc(GNU Compiler Collection)的符号链接,但也可能指向其他 C 编译器。

安装GCC:

sudo apt update

sudo apt install build-essential

说明:build-essential 包包含了编译许多软件包所需的工具,包括GCC、G++ 和make。

 

Nginx 安装过程_nginx_06

可以使用 which cc 或 ls -l $(which cc)(如果 which cc 找到路径的话)来检查 cc 是否指向正确的编译器。

(3)编译源码

命令:make

 

Nginx 安装过程_nginx_07

 

Nginx 安装过程_nginx_08

 

(4)执行 install

make install

Nginx 安装过程_html_09

 

(5)查看安装路径

命令:whereis nginx

命令:cd /usr/local/nginx

cd sbin

  

Nginx 安装过程_html_10

 

(6)启动服务

命令:./nginx

若没有报错,说明启动成功。

 

Nginx 安装过程_Nginx_11

 4、访问站点

(1)命令

curl http://localhost:80

若报Forbidden,如下:

 

Nginx 安装过程_nginx_12

 则:

一般是因为以下目录权限不足,查看配置的文件:/usr/local/nginx/conf/nginx.conf

 

Nginx 安装过程_html_13

 (2)通过防火墙

命令:firewall-cmd --permanent --add-port=80/tcp

命令:firewall-cmd --reload

设置之后,可以在其他计算机上通过浏览器访问。

5、启用

(1)关闭进程

命令:ps aux | grep nginx

命令:sudo kill 主进程Id

推荐命令:sudo kill -QUIT 主进程Id

推荐命令允许它完成当前正在处理的请求。

 

Nginx 安装过程_html_14

注:一般root用户下的进程是主进程。

(2)创建服务文件

创建文本:nginx.service,一般是Utf-8编码。

文本内容:方框内容是启动脚本的位置

 

Nginx 安装过程_Nginx_15

 

Nginx 安装过程_html_16

Nginx 安装过程_html_17

[Unit]  

Description=The NGINX HTTP and reverse proxy server  

After=network.target remote-fs.target nss-lookup.target   

[Service]  

Type=forking  

PIDFile=/run/nginx.pid  

ExecStartPre=/usr/local/nginx/sbin/nginx -t  

ExecStart=/usr/local/nginx/sbin/nginx  

ExecReload=/bin/kill -s HUP $MAINPID  

ExecStop=/bin/kill -s QUIT $MAINPID  

PrivateTmp=true  

 [Install]  

WantedBy=multi-user.target

View Code

(3)移动服务文件

将文本移动到

命令:sudo mv nginx.service /etc/systemd/system/

Nginx 安装过程_html_18

 

(4)启用Nginx服务

重新加载systemd配置并启用Nginx服务

命令:sudo systemctl daemon-reload 

命令:sudo systemctl enable nginx 

命令:sudo systemctl start nginx

 

Nginx 安装过程_Nginx_19

 

通过手动方式配置systemd服务,可能报以下错误:

服务在运行一段时间之后,由于无法打开 pid 文件,导致nginx停止运行。

 

Nginx 安装过程_html_20

 

原因:一般是因为无写权限访问 /run/nginx.pid 文件。

修复:在文件nginx.service中,找到 pidfile 配置项,并更改其值到一个 nginx 用户有写权限的位置,例如:/usr/local/nginx/logs/nginx.pid

在大多数情况下,直接修改 /run 目录的权限或为其设置 ACL 是不推荐的做法。

 

Nginx 安装过程_html_21

 

设置权限的命令,参考:chmod -R 777 /usr/local/nginx/logs

二、卸载

通过yum安装的Nginx,卸载过程相对简单。

1、停止Nginx服务

命令:sudo systemctl stop nginx

或者(对于较旧的系统可能使用init.d脚本):

命令:sudo service nginx stop

2、卸载Nginx软件包:

命令:sudo yum remove nginx

将删除 Nginx 软件包及其相关依赖(除非也被其他软件包所依赖)。

 

Nginx 安装过程_nginx_22

 

3、删除配置文件和数据文件

通过yum remove卸载Nginx软件包,通常不会删除Nginx的配置文件和数据文件(如日志文件、网站文件等)。如果希望完全卸载Nginx,可以手动删除它们。

常见的Nginx配置文件和数据文件路径包括(因配置而异,但默认可能是):

配置文件路径:/etc/nginx/

网站文件路径:/usr/share/nginx/html/ 或 /var/www/html/

日志文件路径:/var/log/nginx/

命令:sudo rm -rf /etc/nginx/

命令:sudo rm -rf /usr/share/nginx/html/  或 /var/www/html/  

命令:sudo rm -rf /var/log/nginx/

4、检查是否已完全卸载

(1)检查Nginx软件包是否已删除

命令:rpm -qa | grep nginx

如果没有任何输出,表示Nginx软件包已删除。

 

Nginx 安装过程_nginx_23

 

(2)检查Nginx的进程是否已停止

命令:ps aux | grep nginx

如果没有任何与Nginx相关的进程,表示Nginx已停止。

 

Nginx 安装过程_nginx_24

 

(3)检查Nginx的文件和目录是否已删除

使用ls或find命令来检查之前提到的文件和目录是否已不存在。

卸载前:

 

Nginx 安装过程_nginx_25

 

卸载后:

 

Nginx 安装过程_html_26