在linux系统中部署web服务时,nginx是常用的高性能反向代理和web服务器,很多时候我们需要先确认当前系统是否已经安装了nginx,避免重复安装或者启动服务时出现异常。不同的linux发行版和安装方式对应的检测逻辑略有差异,下面介绍几种通用且有效的检测方法。

方法一:直接执行nginx版本查询命令
如果nginx已经安装并且加入了系统环境变量,直接在终端执行版本查询命令就可以快速确认。该命令会输出nginx的版本信息,如果提示命令不存在则说明没有安装或者没有配置环境变量。
# 查询nginx版本,若安装会输出类似 nginx version: nginx/1.24.0 的内容 nginx -v # 查询更详细的nginx编译参数和版本信息 nginx -V
方法二:检查nginx服务运行状态
如果nginx是通过系统包管理器安装并且注册为系统服务,可以通过systemctl命令检查服务状态,不仅能确认是否安装,还能知道当前服务的运行情况。
# 查看nginx服务状态,active (running) 表示已安装且正在运行 # 如果是 inactive (dead) 表示已安装但未启动,如果是 not-found 表示未安装 systemctl status nginx
方法三:检索nginx相关进程
如果nginx已经启动,即使没有配置环境变量,也可以通过进程检索的方式确认是否安装。该方法适用于nginx已经运行但命令路径未加入环境变量的情况。
# 检索系统中包含nginx关键词的进程 ps -ef | grep nginx # 更简洁的进程检索方式 pgrep -l nginx
方法四:查询系统安装包
针对使用yum、apt等包管理器安装的nginx,可以直接查询系统的安装包列表来确认是否安装,不同发行版对应的包管理器命令不同。
CentOS/RHEL系统
# 查询是否安装了nginx包 rpm -qa | grep nginx # 或者使用yum查询 yum list installed | grep nginx
Ubuntu/Debian系统
# 查询是否安装了nginx包 dpkg -l | grep nginx # 或者使用apt查询 apt list --installed | grep nginx
方法五:查找nginx可执行文件路径
如果以上方法都没有明确结果,可以通过全局查找的方式定位nginx的可执行文件,只要能找到对应的文件就说明系统已经安装了nginx。
# 全局查找nginx可执行文件,默认安装路径一般在 /usr/sbin/nginx 或者 /usr/local/nginx/sbin/nginx which nginx # 如果which找不到,可以用更全面的查找命令 find / -name nginx -type f 2>/dev/null
不同场景的检测建议
如果是刚安装完nginx想确认是否成功,优先使用nginx -v命令,简单直接;如果是排查服务启动失败的问题,优先使用systemctl status nginx查看服务状态;如果是确认系统是否存在残留的nginx安装文件,可以使用find命令全局查找。不同方法可以结合使用,得到更准确的检测结果。
| 检测方法 | 适用场景 | 结果判断逻辑 |
|---|---|---|
| nginx -v | 快速确认是否安装且环境变量配置正常 | 输出版本信息则已安装,提示命令不存在则未安装或环境变量未配置 |
| systemctl status nginx | 确认包管理器安装的nginx服务状态 | 显示active或inactive则已安装,显示not-found则未安装 |
| ps -ef | grep nginx | 确认nginx是否正在运行 | 出现nginx相关进程则已安装且启动,无结果则可能未安装或未启动 |
| rpm/dpkg查询包 | 确认包管理器安装的nginx | 出现nginx相关包名则已安装,无结果则未通过包管理器安装 |
| find查找文件 | 确认系统是否存在nginx安装文件 | 找到nginx可执行文件则已安装,无结果则未安装 |