在CentOS系统中查看Nginx版本是日常运维中常见的操作,掌握多种方法可以灵活应对不同场景,本文将详细介绍几种常用的查看Nginx版本的方式,帮助用户快速获取版本信息。

使用nginx -v命令查看版本
最直接的方法是通过命令行工具查看Nginx的版本信息,在终端中输入以下命令:
nginx -v
执行后,系统会返回Nginx的版本号及编译参数,nginx version: nginx/1.18.0,该命令仅显示版本号,适合快速确认当前安装的Nginx版本,若需查看更详细的编译选项,可结合-V参数使用。
使用nginx -V命令查看完整编译信息
与-v不同,-V参数会输出更全面的信息,包括版本号、编译器版本、配置参数等,执行命令:
nginx -V
返回结果中会包含类似configure arguments: --prefix=/usr/local/nginx,这些信息对排查问题或重新编译Nginx非常有帮助,需要注意的是,部分系统可能需要root权限才能执行该命令。
检查Nginx配置文件中的版本信息
Nginx的配置文件中通常不直接显示版本号,但可以通过自定义变量或服务器头部信息间接获取,编辑Nginx主配置文件nginx.conf,在http或server段中添加以下指令:
server_tokens on;
保存后重启Nginx服务,通过浏览器访问服务器或使用curl命令查看响应头:
curl -I http://your_server_ip
响应头中的Server字段会显示Nginx版本,如Server: nginx/1.18.0,这种方法适合需要对外暴露版本信息的场景。
查看Nginx安装目录下的版本文件
如果Nginx是通过源码编译安装的,其版本信息通常存储在安装目录的nginx可执行文件中,使用file命令查看文件属性:
file /usr/local/nginx/sbin/nginx
输出结果中会包含版本信息,例如ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked...,部分安装包会在/usr/local/nginx/VERSION文件中记录版本号,可通过cat命令查看。

利用rpm或dpkg命令查看已安装包版本
如果Nginx是通过yum或rpm包管理器安装的,可以使用以下命令查询版本信息:
rpm -qa | grep nginx
该命令会列出系统中所有与nginx相关的RPM包及其版本号,对于基于Debian的系统,可使用:
dpkg -l | grep nginx
这种方法适合快速确认是否安装了特定版本的Nginx包,以及检查是否有多个版本共存。
通过进程信息查看Nginx版本
在CentOS中,可以通过ps命令查看Nginx进程的详细信息,包括可执行文件的完整路径,执行:
ps -ef | grep nginx
找到Nginx主进程的PID后,使用ls或file命令查看对应可执行文件的版本信息。
file /proc/PID/exe
其中PID为Nginx进程的实际ID,这种方法无需额外命令即可获取版本信息。
使用curl命令直接访问Nginx状态页面
如果Nginx配置了状态模块,可以通过访问状态页面获取版本信息,在配置文件中添加:
location /nginx_status { stub_status on; }
重启Nginx后,使用curl访问:
http://your_server_ip/nginx_status
虽然状态页面不直接显示版本号,但结合其他方法可以间接确认版本,部分第三方模块可能会在状态页面中输出版本信息。
FAQs

-
为什么使用
nginx -v命令显示的信息不完整?
答:nginx -v参数仅设计为输出简短的版本号信息,而nginx -V会显示完整的编译参数和模块列表,如果需要查看详细的配置信息,应使用-V参数,某些安全加固的Nginx版本可能会隐藏版本信息,需通过其他方式确认。 -
如何隐藏Nginx版本号以提高安全性?
答:在Nginx配置文件中设置server_tokens off;可以隐藏HTTP响应头中的版本信息,编译Nginx时使用--with-cc-opt="-DNGX_VERSION='"Hidden Version"'"参数可以自定义版本号,修改后需重启Nginx服务使配置生效。