0

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

目前..没有任何反应。请参阅http://ec2-50-19-75-170.compute-1.amazonaws.com/

请参阅下面的配置文件:

我的etc/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 sites-available/dankit sites-enabled/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 root 542 1 0 16:04?00:00:00 nginx:主进程 /usr/sbin/nginx www-data 545 542 0 16:04?00:00:00 nginx:工作进程


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

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

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

4

4 回答 4

1

I then ran: sudo ln -s sites-available/dankit sites-enabled/dankit

问题可能是两件事之一或两者兼而有之:

  1. ln -s /etc/nginx/sites-available/dankit /etc/nginx/sites-enabled/dankit
  2. chown nobody:nobody /etc/nginx/sites-enabled/dankit

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

于 2011-06-24T12:51:11.007 回答
0

也许将所有 0.0.0.0 更改为 127.0.0.1 或指向 127.0.0.1 的 localhost。0.0.0.0 和 127.0.0.1 的区别在于前者指的是本地主机的物理接口,而后者指的是软件接口。

于 2011-06-15T16:59:57.873 回答
0

看着这个 URL http://articles.slicehost.com/2008/5/27/ubuntu-hardy-nginx-rails-and-thin & 你的配置匹配完美,我不认为有任何问题,虽然我想你要验证几件事。

请验证以下内容:

  1. 更改瘦地址指向127.0.0.1
  2. 确保防火墙对薄端口号和 TCP 连接的 80 端口号打开。不是通过查看亚马逊控制台,而是通过运行iptables命令。
  3. 最后,确保您的公共 DNS 是CORRECT
于 2011-06-16T11:14:53.997 回答
0

对其进行排序。

任何可以回答为什么符号链接是问题的人都可以得到答案!

感谢所有的反馈和帮助。基本上,如果其他人遇到这个问题......这就是它。

我注意到当我从 /etc/nginx/site-enabled 中删除配置时,它会影响服务器。

..好吧,听起来不错!

现在我注意到,当我重新将配置从 /etc/nginx/site-available 链接到 /etc/nginx/site-enabled 时,它没有任何效果。即使是默认的 nginx 默认配置也不起作用。

所以!这里的符号链接一定有问题。我通过将 /etc/nginx/site-available/dankit 导入 Nginx 主配置进行了快速测试,嘿!网站已上线。

因此我相信我的符号链接命令:

sudo ln -s sites-available/dankit sites-enabled/dankit

是胡说八道。我得研究另一种解决方案。

于 2011-06-16T15:29:20.280 回答