【问题标题】:nginx + passenger + rails: do I need to start the rails server or just start nginx?nginx + 乘客 + rails:我需要启动 rails 服务器还是只启动 nginx?
【发布时间】:2013-06-19 03:05:18
【问题描述】:

我正在尝试让我的 rails 服务器监听 2 个不同的端口。向我提出的一种解决方案是使用 nginx。我用sudo passenger-install-nginx-module 安装了nginx,并将以下内容添加到/etc/nginx/conf.d:

server {
    listen       80;
    listen       10000;
    server_name  www.myapp.com
    passenger_enabled on;
    root /root/myapp/public;}

当我访问 www.myapp.com 时,我收到了 403 Forbidden 错误。我认为这是因为 /public 中没有静态 html 文件。我在其中放置了一个简单的“hello world”html 页面并正确加载。然后我继续使用passenger start -e production 启动我的rails 应用程序,这导致它在端口3000 上以独立的phusion 乘客模式运行。我转到myapp.com:3000 并获得了该应用程序。但是, myapp:80 和 myapp:10000 仍然不起作用。我对如何让我的 nginx 指向我正在运行的 rails 服务器感到困惑。我这样做完全错了吗?谢谢!

【问题讨论】:

  • Nginx 以乘客启动并且是 rails 服务器。乘客作为一个模块编译到 nginx 中,实际上即使在独立模式下它仍然通过 nginx 运行。

标签: ruby-on-rails nginx passenger


【解决方案1】:

使用 https://gist.github.com/jeffrafter/1229497 设置 nginx 转发到我的 rails 服务器

worker_processes  1;

error_log  /usr/local/var/log/nginx.error.log;

events {
    worker_connections  1024;
}

http {
    include            mime.types;
    default_type       application/octet-stream;
    sendfile           on;
    keepalive_timeout  65;

    upstream dev {
      server 127.0.0.1:3000;
    }

    server {
      listen       80;

      # You could put a server_name directive here (or multiple) if
      # you have not setup wildcard DNS for *.dev domains
      # See http://jessedearing.com/nodes/9-setting-up-wildcard-subdomains-on-os-x-10-6

      # If we choose a root, then we can't switch things around easily
      # Using /dev/null means that static assets are served through
      # Rails instead, which for development is okay
      root         /dev/null;

      index        index.html index.htm;

      try_files  $uri/index.html $uri.html $uri @dev;

      location @dev {
        proxy_set_header  X-Real-IP        $remote_addr;
        proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header  Host             $http_host;
        proxy_redirect    off;
        proxy_pass        http://dev;
      }
      error_page   500 502 503 504  /50x.html;
    }            
}

【讨论】:

    猜你喜欢
    • 2016-03-31
    • 2015-04-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 2019-07-25
    • 2011-04-26
    • 2016-11-19
    相关资源
    最近更新 更多