系统上配置的web服务器,绝大多数情况下是Nginx、Apache或IIS,用一条命令行就能立刻确认。不必拆开机箱,也不用翻安装记录,登录服务器敲一条命令,结果就在眼前,这个问题看似基础,却经常卡住刚接手服务器的朋友,因为网上答案太分散,而且有些教程默认你装的是宝塔面板,有些默认你是纯命令行环境,下面按系统类型和常见场景拆开讲。
用命令行查看web服务器类型
这是最快的路径,适合手里只有一台服务器、没有装面板、需要马上确认环境的情况,关键在于区分Linux和Windows。
Linux系统,直接执行:
ps -ef | grep -E "nginx|apache|httpd"
有nginx进程就是Nginx,有apache2或httpd进程就是Apache,如果不想看进程列表,还可以用nginx和apache自带的版本命令:
nginx -v apache2 -v httpd -v
命令能跑出版本号,说明对应的web服务已经安装,几条命令都报错,说明web服务没装,或者没加到系统PATH变量里。systemctl status nginx和systemctl status apache2也能直接看到服务是否在运行,以及安装路径。
Windows Server系统,通常预装的是IIS,打开“服务”管理工具,找到“World Wide Web Publishing Service”,看它是否处于“正在运行”状态,也可以用命令行确认:
tasklist | findstr w3wp
有w3wp进程说明IIS已启动。
通用方法:在服务器本机执行下面这条命令,看响应头里的Server字段:
curl -I http://localhost
Server: nginx,那就是Nginx;Server: Apache,那就是Apache;Server: Microsoft-IIS/10.0,那就是IIS,这个方法不需要任何权限,只要能访问本机端口就能看到结果,也适用于本地web服务器配置的确认。
核心结论是:想看系统上配置的web服务器是什么,先跑ps或curl -I,不用装任何额外工具。
通过端口和配置文件二次确认

命令行查出来的结果有时候会有点模糊,比如同时装了Nginx和Apache,但只有一个在跑,或者反代工具改了响应头,这时需要结合端口和文件路径来定。
查看80端口和443端口占用
web服务默认都监听80或443端口,直接看端口占用最直观。
Linux下执行:
netstat -tlnp | grep -E ":80|:443"
输出结果里会带进程名和PID,nginx进程会显示nginx: worker process,Apache显示的是apache2或httpd。
Windows下执行:
netstat -ano | findstr ":80"
拿到PID后在任务管理器里查对应进程名,是w3wp就是IIS,是httpd就是Apache,是nginx就是Nginx。
看配置文件特征
每种web服务器的配置文件路径和写法差别很大,只看一眼路径就知道是谁:
- Nginx:
/etc/nginx/nginx.conf,子配置在/etc/nginx/conf.d/下 - Apache:Ubuntu系是
/etc/apache2/apache2.conf,CentOS系是/etc/httpd/conf/httpd.conf - IIS:配置文件是
C:WindowsSystem32inetsrvconfigapplicationHost.config
配置文件里的关键指令也能印证,Nginx里最常见的指令是server { listen 80; },Apache里的典型写法是<VirtualHost :80>,两者在格式上截然不同。
宝塔面板怎么查看web服务器
宝塔面板在国内服务器上覆盖率非常高,很多人接手服务器时,发现已经装好了面板,这时候根本不用碰命令行,点几下鼠标就能确认。
登录宝塔面板后台,左侧菜单栏找到“网站”,点击列表里任意一个站点,弹窗中“运行环境”一栏直接显示了当前使用的web服务软件,可能是Nginx、Apache,或者Nginx+Apache的组合模式,再点顶部菜单“软件商店”,在“已安装”页面也能看到nginx或apache的版本号以及运行状态。
宝塔还有一个隐藏技巧:首页顶部的“运行环境”卡片,会把Nginx、MySQL、PHP的版本直接列在仪表盘上,一眼就能确认。

如果你用的是酷番云或简米云的宝塔镜像,默认web服务通常是Nginx,因为宝塔官方推荐Nginx作为默认环境,性能表现更稳定。
Nginx和Apache选哪个更合适
这是看到web服务器类型之后,很多人会继续问的问题,Nginx和Apache是当前市场占有率最高的两个选择,IIS则基本只出现在Windows架构中,没有太多纠结空间。
性能取向不同
Nginx是事件驱动模型,并发连接处理能力很强,占用内存更少,静态文件、反向代理、负载均衡场景下优势明显,Apache是进程驱动模型,处理动态请求的兼容性更好,尤其对.htaccess这类分布式配置支持得非常完善。
多数情况下,网络请求中静态资源占比相当大,Nginx在应对高并发时基本不会把服务器内存打满,这也是为什么云厂商的默认镜像越来越多采用Nginx。
配置习惯不同
Apache支持.htaccess,网站目录里放一个.htaccess就能配置伪静态、防盗链,不用重启服务,Nginx不认这套,它的配置集中在nginx.conf里,修改后需要nginx -s reload才会生效,新手如果习惯了Apache的.htaccess,换到Nginx会有一段适应期。
生态取舍
WordPress、Discuz这类CMS对Apache支持很成熟,伪静态规则一搜就是全套,Nginx这边需要自己把规则写到配置文件里,不过网上的示例同样丰富,照抄即可。
选型建议很直接:新项目、云服务器、追求性能,选Nginx;老项目、复杂重写规则较多、不想学习新配置语法,继续用Apache。 不存在绝对的“谁更好”,适合当前系统架构的就是好选择。
本地Web服务与云服务器上的查看差别
本地开发和云服务器环境用的工具链不太一样,确认方法也略有差异。
Windows本地开发机,最常见的是phpStudy和XAMPP这类集成环境,打开phpStudy的控制面板,首页按钮上直接标明“Apache”或“Nginx”,点击即可切换,XAMPP在启动界面上同样直接显示了Apache的启动状态,这类集成环境自带web服务,无需单独安装。

macOS本地环境稍微特殊,系统自带Apache,路径在/etc/apache2/,终端输入httpd -v就能看到版本,不过很多开发者会通过Homebrew安装Nginx,两条命令都跑一遍,以实际监听80端口为准。
云服务器端,除了之前提到的宝塔面板,很多国内云厂商提供的应用镜像也会预装web服务器。“WordPress镜像”通常是Linux+Nginx+PHP的组合,“LAMP镜像”则是Linux+Apache+MySQL+PHP,购买时一般会在镜像介绍里写清楚,如果不确定,登录后按第一条的命令行方法验证即可。
至于web服务器配置的价格问题,租用一台云服务器的费用主要花在CPU、内存、带宽上,web服务软件本身免费开源,不产生额外授权成本,本地机器测试用最低配置就够,云服务器则根据站点流量选,多数个人站点2核4G配置绰绰有余,不值得为用不到的性能付费。
检查Web服务器是否正常的常见问题
为什么curl命令显示连接拒绝?
说明web服务可能没有启动,或者监听端口不是默认的80,先执行systemctl status nginx或service apache2 status确认进程是否存活,再执行netstat -tlnp确认端口监听状态,服务器安全组的80端口放行情况也要顺手查一下,否则外部访问被挡,本地curl却是正常的。
系统上同时装了Nginx和Apache,会不会冲突?
会,两者都默认监听80端口,同时启动必然有一个起不来,建议只保留一个,另一个设置为不开机自启,确认当前正在运行的服务后,把另一个彻底卸载或禁用。
怎么看web服务用的PHP版本?
PHP版本和web服务是两个东西,nginx或apache负责接收HTTP请求,PHP通过FastCGI或模块方式处理动态请求,查看PHP版本直接执行php -v,在phpinfo页面里也能看到,宝塔面板则在“软件商店”页面分别展示nginx和php的版本,互不干涉。
确认系统上配置的web服务器是什么,本质就是一个“先查进程、再对端口、最后看配置”的排查过程,命令行一条命令能解决的事情,不需要猜,也不该猜。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/816817.html


评论列表(3条)
这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于服务器的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!
@草草2752:读了这篇文章,我深有感触。作者对服务器的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!
读了这篇文章,我深有感触。作者对服务器的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!