停止Apache服务并安装Nginx后,访问IP仍显示Apache默认页?
这种情况我碰到过好几次,大概率是下面几个原因导致的,咱们一步步来排查:
浏览器缓存搞的鬼
浏览器会自动缓存静态页面(比如Apache的欢迎页),哪怕后端服务换了,它还是会直接读缓存。试试按Ctrl+Shift+R强制刷新页面,或者用隐私/无痕窗口打开你的IP地址,看看是不是就显示Nginx的页面了。Apache还有残留进程没清理干净
有时候执行service apache2 stop或者/etc/init.d/apache2 stop后,还是会有一些子进程偷偷留在后台占用80端口。你可以用下面的命令检查:ps aux | grep apache2如果输出里还有非
grep本身的apache2进程,就用sudo kill -9 <进程ID>逐个杀掉,或者直接用批量命令:sudo pkill -9 apache2杀完之后再确认80端口的占用情况:
sudo ss -tulpn | grep :80正常应该显示
nginx在监听80端口。Nginx是否真的正确监听80端口?
虽然systemctl status nginx显示运行正常,但有可能你的Nginx配置里没设置监听80端口。检查默认站点配置文件(Debian/Ubuntu系统一般是/etc/nginx/sites-available/default),确保有类似这样的核心配置:server { listen 80 default_server; listen [::]:80 default_server; root /usr/share/nginx/html; index index.html index.htm; server_name _; location / { try_files $uri $uri/ =404; } }如果配置有问题,修改后重启Nginx:
sudo systemctl restart nginx有没有其他缓存中间件在搞事情?
如果你的服务器上装了Varnish这类缓存服务,它们可能缓存了之前的Apache页面。这种情况下需要重启对应的缓存服务,比如:sudo systemctl restart varnish
先从最容易排查的浏览器缓存开始试,一般大部分情况都是缓存的问题。如果还是不行,再依次检查进程、端口和配置。
内容的提问来源于stack exchange,提问作者Lainly

