2014-12-02 4 views
0

Я пытаюсь развернуть приложение метеоритов на моем рабочем сервере, работающем на Ununtu 14.04, и я получаю следующую ошибку в файле журнала (/ var/log /nginx/error.log)Производство meteor app: NginX proxy - failed (111: connection failed)

2014/12/02 16:03:38 [error] 19231#0: *4267 connect() failed (111: Connection refused) while connecting to upstream, client: 162.13.2.250, server: theserver.com, request: "GET /content/staticContent.json HTTP/1.1", upstream: "http://127.0.0.1:3000/content/staticContent.json", host: "theserver.com" 

Мое приложение извлечения содержимого JSon из 5 файлов, и они включены как часть проекта.

У меня есть следующий конфигурационный файл nginx. Я запускаю nginx 1.6.2.

Следует также отметить, что посещение http://theserver.com/content/staticContent.json загружает содержимое в моем браузере.

Я также запустил 'wget http://127.0.0.1:3000/content/staticContent.json' из командной строки при входе в мой производственный сервер, и я могу получить контент.

server_tokens off;

upstream anna { 
     server 127.0.0.1:3000; 
} 

# HTTP 
server { 
     listen 80; 

     #server_name *.theserver.com; 
     server_name  theserver.com; 

     location/{ 
       proxy_pass http://anna; 
       proxy_http_version 1.1; 
       proxy_set_header Upgrade $http_upgrade; 
       proxy_set_header Connection "upgrade"; 
       proxy_set_header Host $http_host; 

       proxy_set_header X-Real-IP $remote_addr; 
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
       proxy_set_header X-Forward-Proto http; 
       proxy_set_header X-NginX-Proxy true; 

       proxy_redirect off; 
     } 
} 

У меня есть следующий выскочка конфигурационный файл для запуска моего Метеор приложения в узле волокна

description "Meteor.js (NodeJS) application for theserver.com" 
author "Me <[email protected]>" 

start on started mongodb and runlevel [2345] 

stop on shutdown 

respawn 
respawn limit 10 5 

setuid anna 
setgid anna 

script 
     export PATH=/opt/local/bin:/opt/local/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 
     export NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript 
     export PWD=/home/anna 
     export HOME=/home/anna 
     export BIND_IP=127.0.0.1 
     export PORT=3000 
     export HTTP_FORWARDED_COUNT=1 
     export MONGO_URL=mongodb://localhost:27017/anna 
     export ROOT_URL=http://theserver.com/ 
     exec node /home/anna/bundle/main.js >> /home/anna/anna.log 
end script 

Мой процесс развертывания выглядит следующим образом:

  1. На моей локальной машине I запустить «метеоритный сбор». а затем scp, что на мой производственный сервер в указанном выше домашнем каталоге
  2. Затем я распакую файл .tar.gz, cd в пакет/программы/сервер и запускаю «npm install»
  3. Наконец, когда вы вошли в систему как 'anna 'с правами sudo, я запускаю «sudo start anna» с учетом вышеупомянутого сценария выскочки
  4. При проверке сгенерированного файла журнала я вижу сгенерированный html, сообщающий мне, что есть ошибка с неправильным шлюзом 502.

Когда я перехожу к URL-адресу живого веб-сайта, я вижу значок загрузки, который я установил. Это шаблон загрузки Meteor, который я установил, и я настроил IronRouter, чтобы использовать его в качестве шаблона загрузки, пока он ожидает, что подписка на мою коллекцию будет заполнена, но это никогда не произойдет, потому что мой экземпляр mongodb на стороне сервера никогда не заполняется , по причинам выше.

Может ли кто-нибудь увидеть что-нибудь необычное в приведенном выше, что может вызвать ошибку 502 плохого шлюза?

Запуск NetStat -ln указывает мне, что Node.js работает, смотрите ниже:

tcp  0  0 127.0.0.1:3000   0.0.0.0:*    LISTEN 

Благодаря

+0

Вы можете проверить http://stackoverflow.com/a/24497020/586086. –

+0

Привет, Андрей - Просто, к сожалению, я не работал. – matfin

ответ

0

Вы пробовали использовать meteor-up? Он обрабатывает конфигурацию компоновки и выскочки.

Предлагаемая конфигурация nginx для meteor-up ниже, она выглядит очень похожей на вашу (взято из Using Meteor Up with NginX vhosts).

/etc/nginx/sites-enabled/mycustomappname.com.Conf

server { 
    listen    *:80; 

    server_name   mycustomappname.com; 

    access_log   /var/log/nginx/app.dev.access.log; 
    error_log    /var/log/nginx/app.dev.error.log; 

    location/{ 
    proxy_pass http://127.0.0.1:3000; 
    proxy_http_version 1.1; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection 'upgrade'; 
    proxy_set_header X-Forwarded-For $remote_addr; 
    } 
} 
+0

Привет. Спасибо за предложение. Я попробовал немало вещей, чтобы получить эту работу и так и не смог ее решить. Как мне это удалось: создать новый поддомен, каталог на сервере и файл конфигурации nginx для загрузки статического контента. Тогда я просто сбросил все свои активы, и это сработало. Это лучше, и это позволило мне освободить свой код от всех содержащихся в нем ресурсов контента. – matfin

Смежные вопросы