当前位置: 首页 > news >正文

Nginx 安装过程

一、安装

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 

image

 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

 image

 2)配置nginx

命令:./configure

 image

image

 若报错:C compiler cc is not found

 image 

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

安装GCC:

sudo apt update

sudo apt install build-essential

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

 image

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

3)编译源码

命令:make

 image

 image 

4)执行 install

 

命令:make install 

image 

5)查看安装路径

命令:whereis nginx

命令:cd /usr/local/nginx

 命令:cd sbin

 

 image 

6)启动服务

命令:./nginx

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

 image

 4、访问站点

命令:curl http://localhost:80

若报Forbidden,如下:

 image

 或

 

则:

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

 image

 通过防火墙

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

命令:firewall-cmd --reload

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

5、启用 systemd 服务

1)关闭进程

命令:ps aux | grep nginx

命令:sudo kill 主进程Id

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

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

 image

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

2)创建服务文件

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

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

 image 

[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)移动服务文件

 

将文本移动到 /etc/systemd/system/

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

image 

4)启用Nginx服务

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

命令:sudo systemctl daemon-reload 

命令:sudo systemctl enable nginx 

命令:sudo systemctl start nginx

 image 

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

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

 image 

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

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

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

 image 

设置权限的命令,参考: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 软件包及其相关依赖(除非也被其他软件包所依赖)。

 image 

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软件包已删除。

 image 

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

命令:ps aux | grep nginx

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

 image 

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

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

卸载前:

 image 

卸载后:

 image 

 

http://www.hskmm.com/?act=detail&tid=6049

相关文章:

  • Xcode 26 (17A324) 正式版发布 - Apple 平台 IDE
  • macOS Tahoe 26 (25A354) Boot ISO 原版可引导镜像下载
  • mysql数据库服务主从复制实现(基于position)
  • 海量接入、毫秒响应:易易互联携手阿里云构筑高可用物联网消息中枢
  • macOS Sequoia 15.7 (24G222) 正式版 ISO、IPSW、PKG 下载
  • C++ std::list
  • 函数是编程范式的原理是什么?
  • 能耐高温400度密封圈用什么材质
  • 【IEEE出版|Fellow云集】第五届电气工程与机电一体化技术国际学术会议(ICEEMT 2025)
  • APDU笔记
  • AR眼镜:远程协作的“破局者”,让困难解决“云手帮”
  • 跨网文件摆渡系统功能全解析
  • 跨平台代码同步新时代:Gitee携手GitHub打造开发者高效协作生态
  • CTFer
  • 家政小程序源码一站式开发:助力家政企业数字化转型
  • Gitee推出跨平台镜像功能:一键同步GitHub仓库,开发者协作效率提升50%
  • DeClotH: Decomposable 3D Cloth and Human Body Reconstruction from a Single Image
  • 在 Streamable HTTP 传输模式下启动并测试 MCP Serverr (二)
  • 从0到1上手阿里云ARMS:让Java服务监控变得简单
  • 聚焦实用:内外网文件摆渡系统品牌推荐来了!
  • 生物活性肽:从基础研究到治疗应用的潜力与挑战,及计算机辅助筛选的关键作用
  • MySQL视图定义者和安全性definer/invoker的区别
  • Guid g = Guid.Empty;Guid.TryParse(, out g);
  • 【IEEE出版|上海理工大学】第六届大数据、人工智能与物联网工程国际会议(ICBAIE 2025)
  • MDI Jade9.0中文版详细下载及安装教程,附免费免激活版MDI Jade安装包!!
  • C++ std::vector
  • RC-Explainer | Reinforced Causal Explainer for Graph Neural Networks
  • 批量遍历文件夹内得文件生成md5值
  • 使用源码启动 seata tc server
  • OpenLDAP 常见命令行命令及解析