运行 Ubuntu Server 14.04.1 LTS
检查 nginx 状态表明它没有运行:
$ sudo service nginx status
* nginx is not running
但事实确实如此,因为它所支持的网站正在运行,并且:
存在以下过程:
$ ps aux | grep nginx
root 1445 0.0 0.2 86008 1448 ? Ss 18:06 0:00 nginx: master process /usr/sbin/nginx
www-data 1446 0.0 0.3 86320 1868 ? S 18:06 0:00 nginx: worker process
www-data 1447 0.0 0.3 86320 1868 ? S 18:06 0:00 nginx: worker process
www-data 1448 0.0 0.3 86320 1868 ? S 18:06 0:00 nginx: worker process
www-data 1449 0.0 0.4 86320 2372 ? S 18:06 0:00 nginx: worker process
netstat 显示它在监听:
$ sudo netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1445/nginx
这种奇怪的现象的结果是,如果我改变设置,我就无法做到service nginx reload
,而是必须杀死所有 nginx,然后重新启动它(使用服务 nginx 启动)。
我怎样才能解决这个问题?
答案1
我更新了 nginx 并在 Ubuntu 12.04 上遇到了同样的问题。
我切换到root用户然后终止所有nginx进程。
kill $(ps aux | grep '[n]ginx' | awk '{print $2}')
之后启动 nginx,一切看起来都很好。