ruby-on-rails - 让 Nginx 转发到 EC2 上的 Thin

标签 ruby-on-rails ubuntu amazon-ec2 nginx thin

我正在努力让 Nginx 将我的 :80 流量代理到我的瘦集群上。

目前..没有任何 react 。见 http://ec2-50-19-75-170.compute-1.amazonaws.com/

请参阅下面的配置文件:

我的 等/nginx/sites-enabled/dankit 配置文件看起来像这样

upstream thin {
     server 0.0.0.0:3000;
     server 0.0.0.0:3001;
     server 0.0.0.0:3002;
}

server {
    listen 80;
    server_name ec2-50-19-174-64.compute-1.amazonaws.com;

    root /home/ubuntu/apps/dankit-rails;

    location / {
      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 false;

      if (-f $request_filename/index.html) {
        rewrite (.*) $1/index.html break;
      }
      if (-f $request_filename.html) {
        rewrite (.*) $1.html break;
      }
      if (!-f $request_filename) {
        proxy_pass http://thin;
        break;
      }
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
      root html;
    }
}

然后我跑了:
sudo ln -s 站点可用/dankit 站点启用/dankit

/etc/thin/dankit.yml
pid: tmp/pids/thin.pid
address: 0.0.0.0
timeout: 30
port: 3000
log: log/thin.log
max_conns: 1024
require: []

max_persistent_conns: 512
environment: production
servers: 3
daemonize: true
chdir: /home/ubuntu/apps/dankit-rails

并确认两者都在运行:

ubuntu@domU-12-31-39-06-7A-F8:/etc/nginx/sites-available$ ps -ef | grep -i 瘦
根 923 1 2 16:06? 00:00:09 瘦服务器 (0.0.0.0:3000)
根 934 1 1 16:06 ? 00:00:09 瘦服务器 (0.0.0.0:3001)
根 945 1 1 16:06 ? 00:00:08 瘦服务器 (0.0.0.0:3002)
ubuntu 971 817 0 16:14 pts/0 00:00:00 grep -i Thin
ubuntu@domU-12-31-39-06-7A-F8:/etc/nginx/sites-available$ ps -ef | grep -i nginx
根 542 1 0 16:04 ? 00:00:00 nginx:主进程/usr/sbin/nginx
www-数据 545 542 0 16:04 ? 00:00:00 nginx:工作进程

我的瘦服务器启动正常,rails 目录中的日志没有显示任何错误。

我开始认为这是 ec2 安全组的安全问题。但是,我为 0.0.0.0/0 3000-3030 以及通常的 :80 和 ssh 添加了 TCP。

这让我精神崩溃!任何建议将不胜感激。

最佳答案

I then ran: sudo ln -s sites-available/dankit sites-enabled/dankit
问题可能是两件事之一或两者兼而有之:

  • ln -s/etc/nginx/sites-available/dankit/etc/nginx/sites-enabled/dankit
  • chown nobody:nobody/etc/nginx/sites-enabled/dankit

  • 我倾向于只使用符号链接(symbolic link)的完整路径......也许这只是一个好习惯,但我也发现如果没有为启用的站点配置正确的权限,nginx 会不高兴。

    关于ruby-on-rails - 让 Nginx 转发到 EC2 上的 Thin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6361332/

    相关文章:

    ruby-on-rails - ruby 中的 truncate 和 raw 是互斥的方法吗?

    ubuntu - IBM Websphere MQ - UI 登录问题

    ruby-on-rails - 在 Rails 中运行 native mongodb 命令

    ruby-on-rails - Rails联接并包括联接表中的列

    php - Phalcon.ini 在 phpifo 中加载但 phalcon 没有安装

    ios - Amazon EC2 上的 Apple 推送通知服务器已连接但未收到通知

    node.js - EC2 cron 作业未执行我的 Node.js 脚本

    linux - 我想将github代码部署在EFS挂载路径中

    mysql - Rake:数据库迁移因预先存在的 mySQL 数据库而失败

    linux - TLS 连接被拒绝,日志中没有任何内容