0

我无法在端口 80 上启动我的网站,但只能在 3000 上启动。Nginx 显示标准索引页面。Nginx 配置:

http {
  passenger_root /home/my_user_name/.rvm/gems/ruby-1.9.3-p125/gems/passenger-3.0.11;
  passenger_ruby /home/my_user_name/.rvm/wrappers/ruby-1.9.3-p125/ruby;

  include       mime.types;
  default_type  application/octet-stream;

  keepalive_timeout 65;

  server {
    listen 80;
    server_name www.my_site_name.com
    root /home/my_user_name/my_site_name/public;   # <--- be sure to point to 'public'!
    passenger_enabled on;
  }

}

命令:

passenger start -e production  # successfully started on port 3000

rvmsudo passenger start -e production -p 80 # error, see below

错误:

*** ERROR ***
The address 0.0.0.0:80 is already in use by another process, perhaps another
Phusion Passenger Standalone instance.

If you want to run this Phusion Passenger Standalone instance on another port,
use the -p option, like this:

  passenger start -p 81

谢谢你的帮助!

4

3 回答 3

1

Nginx 是在端口 80 上监听的。Passenger Standalone 是在没有 Web 服务器的情况下使用的。在运行 Nginx 的情况下,您也不必单独启动Passenger。

使用 Nginx 的乘客文档

旅客独立文件

于 2012-04-07T13:11:56.967 回答
1

我认为您需要location在端口 80 上为您的服务器指定一个,如下所示:

http {
  # ...

  server {
    listen 80;
    server_name www.my_site_name.com

    location / {
      root /home/my_user_name/my_site_name/public;
      passenger_enabled on;
    }
  }
}

正如jdl 指出的那样,您也不需要运行Passenger Standalone。您不需要这些命令中的任何一个。Nginx 将为您服务。

于 2012-04-07T14:02:59.003 回答
1

好的,你的初始配置是正确的......所以运行这个命令来启动 rails 应用程序:

rvmsudo passenger start -e production -p 80 --user="TYPE HERE USERNAME FROM SSH"
于 2013-11-21T04:14:43.360 回答