我正在使用 nginx+passenger 设置带有 Rails 3.1 应用程序的 VPS,并使用 capistrano 进行引导。起初,我使用二进制文件安装了 nginx,忘记了 Passenger 也会安装它。当 Passenger 询问我时,我创建了一个目录 ~/opt/nginx 供它安装到其中。现在,当我运行以下命令时:
sudo /etc/init.d/nginx stop
lsof -i:80
服务器似乎停止了,端口 80 没有任何报告。但是,我尝试运行
sudo ~/opt/nginx/sbin/nginx
上面写着:
nginx:[emerg] bind() 至 0.0.0.0:80 失败(98:地址已在使用中)
有什么想法吗?请注意,我以这种方式安装 nginx 是因为我使用的是用户 rvm 安装,因此使用sudo passenger-install-nginx-module
会指定错误的 ruby 版本。
答案1
您是否使用 sudo 运行了 lsof?
这会返回任何监听端口 80 的内容吗?
netstat -an | grep LISTEN*
当您连接到端口 80 时您会收到任何消息吗?