一、安装
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
或去官网手动下载,网址:https://nginx.org/en/download.html
若没有未发现命令wget,则需先安装 wget,命令:yum install -y wget。
(2)手动下载
https://nginx.org/en/download.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
(2)配置nginx
命令:./configure
若报错:C compiler cc is not found
修复:cc 通常是 gcc(GNU Compiler Collection)的符号链接,但也可能指向其他 C 编译器。
安装GCC:
sudo apt update
sudo apt install build-essential
说明:build-essential 包包含了编译许多软件包所需的工具,包括GCC、G++ 和make。
注:可以使用 which cc 或 ls -l $(which cc)(如果 which cc 找到路径的话)来检查 cc 是否指向正确的编译器。
(3)编译源码
命令:make
(4)执行 install
命令:make install
(5)查看安装路径
命令:whereis nginx
命令:cd /usr/local/nginx
命令:cd sbin
(6)启动服务
命令:./nginx
若没有报错,说明启动成功。
4、访问站点
命令:curl http://localhost:80
若报Forbidden,如下:
或
则:
一般是因为以下目录权限不足,查看配置的文件:/usr/local/nginx/conf/nginx.conf
通过防火墙
命令:firewall-cmd --permanent --add-port=80/tcp
命令:firewall-cmd --reload
设置之后,可以在其他计算机上通过浏览器访问。
5、启用 systemd 服务
(1)关闭进程
命令:ps aux | grep nginx
命令:sudo kill 主进程Id
推荐命令:sudo kill -QUIT 主进程Id
推荐命令允许它完成当前正在处理的请求。
注:一般root用户下的进程是主进程。
(2)创建服务文件
创建文本:nginx.service,一般是Utf-8编码。
文本内容:方框内容是启动脚本的位置

[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
(3)移动服务文件
将文本移动到 /etc/systemd/system/
命令:sudo mv nginx.service /etc/systemd/system/
(4)启用Nginx服务
重新加载systemd配置并启用Nginx服务
命令:sudo systemctl daemon-reload
命令:sudo systemctl enable nginx
命令:sudo systemctl start nginx
通过手动方式配置systemd服务,可能报以下错误:
服务在运行一段时间之后,由于无法打开 pid 文件,导致nginx停止运行。
原因:一般是因为无写权限访问 /run/nginx.pid 文件。
修复:在文件nginx.service中,找到 pidfile 配置项,并更改其值到一个 nginx 用户有写权限的位置,例如:/usr/local/nginx/logs/nginx.pid
在大多数情况下,直接修改 /run 目录的权限或为其设置 ACL 是不推荐的做法。
设置权限的命令,参考: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 软件包及其相关依赖(除非也被其他软件包所依赖)。
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软件包已删除。
(2)检查Nginx的进程是否已停止
命令:ps aux | grep nginx
如果没有任何与Nginx相关的进程,表示Nginx已停止。
(3)检查Nginx的文件和目录是否已删除
使用ls或find命令来检查之前提到的文件和目录是否已不存在。
卸载前:
卸载后: