2015-11-23 4 views
0

Вот что я пытаюсь выполнить ..... Я пытаюсь настроить обратный прокси-сервер с помощью nginx на моей машине dev и размещать три приложения метеоритов локально на другом локальном порту , Я хочу, чтобы мой nginx перенаправлял запросы на основе виртуального каталога ... что-то вроде localhost/App1 перенаправляло бы на localhost: 3010, а localhost/App2 - на localhost: 3011. Эти приложения должны будут использовать микросертификацию Meteor Identity (третье приложение) для аутентификации, и приложениям необходимо будет использовать что-то вроде localhost/Iden для перенаправления не прошедших проверку пользователей.Nginx не загружает пакеты Meteor: получение ошибки 404

В качестве первого шага у меня есть эта настройка: Я пытаюсь разверните приложение Meteor App1 на Nginx локально. Я создал приложение с «meteor build» и переместил содержимое в Nginx/html, где находится мой корень. Как только я просматриваю приложение через nginx-порт (localhost: 81), я не могу загружать пакеты метеоров, но могу загрузить файлы приложений. Само приложение работает на локальном хосте: 3000

Ниже ошибка

Error screenshot : Chrome console

Я могу просматривать файлы ресурсов, которые я создал, такие как todo.js, индивидуально

localhost:81/app/template.todo1.js?979b20f66caf126704c250fbd29ce253c6cb490e

, но я не в состоянии перейти к метеорных пакетов файлов

localhost:81/packages/global-imports.js?af67437fd606dadafb22ec5e8bfc6ca8314a60ad

как она возвращает 404

Ниже мой конфиг от Nginx

#user nginx; 
worker_processes 1; 

#error_log logs/error.log; 
#error_log logs/error.log notice; 
#error_log logs/error.log info; 

#pid  logs/nginx.pid; 


events { 
worker_connections 1024; 
} 


http { 
include  mime.types; 
default_type application/octet-stream; 

#log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 
#     '$status $body_bytes_sent "$http_referer" ' 
#     '"$http_user_agent" "$http_x_forwarded_for"'; 

#access_log logs/access.log main; 

sendfile  on; 
#tcp_nopush  on; 

#keepalive_timeout 0; 
keepalive_timeout 65; 

gzip on; 
gzip_disable "msie6"; 
gzip_vary on; 
gzip_proxied any; 
gzip_comp_level 6; 
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; 

server { 
    listen  0.0.0.0:81; 
    server_name localhost; 

    #charset koi8-r; 

    #access_log logs/host.access.log main; 

     location ~* "^/[a-z0-9]{60}\.(css|js)$" { 
     root /app1/bundle/programs/server; 
     access_log off; 
     expires max; 
     } 

     location ~ "^/packages" { 
     root /app1/bundle/programs/server; 
     access_log off; 
     } 

    location ~ ^/(images/|img/|javascript/|js/|css/|stylesheets/|flash/|media/|static/|robots.txt|humans.txt|favicon.ico) { 
     root /app1/bundle/programs/server; 
     access_log off; 
     expires max; 
    } 


    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; 
     proxy_set_header Host $host; 

    } 
    location /app2 { 
     proxy_pass http://127.0.0.1:3010; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection 'upgrade'; 
     #proxy_set_header X-Forwarded-For $remote_addr; 
     proxy_set_header Host $host; 
    } 

    #error_page 404    /404.html; 

    # redirect server error pages to the static page /50x.html 
    # 
    error_page 500 502 503 504 /50x.html; 
    location = /50x.html { 
     root html; 
    } 

} 

} 

Любая помощь оценили, как я борюсь с этой проблемой, так как вчера

+0

вы что-то неправильно поняли. Вы должны перемещать * все * в свой корень nginx. Возможно, вы пытаетесь использовать nginx в качестве прокси-сервера (что обычно используется), но даже это необязательно. Пожалуйста, объясните в своем вопросе, что вы пытаетесь выполнить (прямо сейчас это просто описание того, что вы сделали и что не работает, но не почему вы это сделали и какова конечная цель). –

+0

Вот что я пытаюсь выполнить ..... Я пытаюсь настроить обратный прокси-сервер с помощью nginx на моей машине dev и размещать три приложения метеоритов локально на другом локальном порту. Я хочу, чтобы мой nginx перенаправлял запросы на основе виртуального каталога ... что-то вроде localhost/App1 перенаправляло бы на localhost: 3010, а localhost/App2 - на localhost: 3011. Эти приложения должны будут использовать микросертификацию Meteor Identity (третье приложение) для аутентификации, и приложениям необходимо будет использовать что-то вроде localhost/Iden для перенаправления не прошедших проверку пользователей ...Надеюсь, что это ясно. – Adi

+0

Если обратный прокси-сервер - это все, что вам нужно, я бы рекомендовал посмотреть на redbird (https://github.com/OptimalBits/redbird). Создание обратного прокси с этим * намного проще, чем с nginx. Я использую его все время точно так, как вы описываете (один хост, несколько проектов метеоров), и его очень легко настроить. –

ответ

0

Если все, что вы хотите, это обратный прокси-сервер, то я рекомендую с помощью redbird:

npm install redbird 

и потом, к примеру, если у вас есть два метеора приложений, работающих локально на портах 3000 и 4000:

proxy.js:

var proxy = require('redbird')({port: 80}); 
proxy.register("myfirstapp.com", "http://localhost:3000"); 
proxy.register("mysecondapp.com", "http://localhost:4000"); 

, а затем запустить:

sudo node proxy.js 

Обратите внимание, что это не имеет значения, метеорные приложения работают с пачкой или до сих пор используют meteor. Но, конечно, первое целесообразно для производства.

+0

Спасибо за образец. Быстрый вопрос. Могу ли я зарегистрировать что-то вроде этого var proxy = require ('redbird') ({port: 3010}); proxy.register ("127.0.0.1"; "127.0.0.1:3000"); – Adi

+0

неважно ... это работает :-) – Adi

+0

следующая конфигурация не работает. var proxy = require ('redbird') ({порт: 80}); proxy.register ("example.com/aaa", "http://127.0.0.1:3010"); proxy.register ("example.com/bbb", "http://127.0.0.1:3000"); Вы могли это понять? Когда я получаю доступ к URL-адресу с этой конфигурацией, я получаю сообщение «Uncaught SyntaxError: Unexpected identifier» с не найденным в каждом файле ресурсов ... в то время как настройка subdomain.domain.com работает ... только когда у вас есть пути после домена, я вижу эта проблема .. – Adi

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