Получение Nginx для пересылки в Thin на EC2 - PullRequest
0 голосов
/ 15 июня 2011

Я изо всех сил пытаюсь заставить Nginx проксировать мой трафик: 80 на мой тонкий кластер.

На данный момент ... ничего не происходит.См. http://ec2 -50-19-75-170.compute-1.amazonaws.com /

См. Ниже мои файлы конфигурации:

My 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)
root 934 1 1 16:06?00:00:09 тонкий сервер (0.0.0.0:3001)
root 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.Однако я добавил TCP для 0.0.0.0/0 3000-3030 и обычный: 80 и ssh.

Это сводит меня с ума!Любые предложения будут с благодарностью.

Ответы [ 4 ]

1 голос
/ 24 июня 2011

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 недоволен, если права доступа не настроены для включенных сайтов.

0 голосов
/ 16 июня 2011

Глядя на этот URL http://articles.slicehost.com/2008/5/27/ubuntu-hardy-nginx-rails-and-thin и ваша конфигурация идеально подходит, я не думаю ни о какой проблеме, хотя я бы хотел, чтобы вы кое-что проверили.

Пожалуйста, проверьте следующее:

  1. Изменить тонкий адрес так, чтобы он указывал на 127.0.0.1
  2. Убедитесь, что брандмауэр ОТКРЫТ для номера порта thin и 80 для соединения TCP. Не глядя на консоль amazon, а запустив команду iptables.
  3. Наконец, убедитесь, что ваш public-dns CORRECT
0 голосов
/ 16 июня 2011

Сортировать.

Любой, кто может ответить, почему символическая ссылка была проблемой, может получить ответ!

Спасибо за все отзывы и помощь. В принципе, если кто-то столкнется с этой проблемой ... вот что это было.

Я заметил, что когда я удалил конфиги из / 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

это бред. Я должен искать другое решение.

0 голосов
/ 15 июня 2011

Может изменить все 0.0.0.0 на 127.0.0.1 или localhost, который указывает на 127.0.0.1. Разница между 0.0.0.0 и 127.0.0.1 заключается в том, что первый относится к физическому интерфейсу (ам) localhost, а второй - к программному интерфейсу.

...