Получение Nginx для пересылки в Thin на EC2

Я изо всех сил пытаюсь заставить 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 сайты-доступны/данкит-сайты-включены/данкит

/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. Однако я добавил TCP для 0.0.0.0/0 3000-3030 и обычный: 80 и ssh.

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


person Morgz    schedule 15.06.2011    source источник


Ответы (4)


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 не доволен, если разрешения не настроены правильно для разрешенных сайтов.

person sdolgy    schedule 24.06.2011

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

person eggie5    schedule 15.06.2011
comment
спасибо за предложение. Сменил IP, перезапустил nginx и тонкий, но все равно не повезло - person Morgz; 15.06.2011

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

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

  1. Измените тонкий адрес, чтобы он указывал на 127.0.0.1
  2. Убедитесь, что брандмауэр ОТКРЫТ для тонкого порта и 80 для TCP-соединения. Не взглянув на консоль Amazon, а выполнив команду iptables.
  3. Наконец, убедитесь, что ваш общедоступный DNS CORRECT
person Rakesh Sankar    schedule 16.06.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

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

person Morgz    schedule 16.06.2011