2012-12-02 10 views
11

mam instalacji Meteor (ramowej) na moim AWS EC2 (mikro) instancji, a następnie zgodnie z instrukcjami i po utworzeniu projektu testowego Pobiegłem meteor na ten katalog daje mi oczekiwanąJak kontrolować gdzie Meteor biegnie

[[[[[ /var/www/html/meteortest ]]]]] 

Running on: http://localhost:3000/ 

Ale nie mogę przejść do localhosta mojego serwera w przeglądarce, aby zobaczyć przykładowy przykład Witaj świecie. Czy istnieje sposób mogę uczynić pracę meteorów na coś takiego:

http://mydomain.com/meteortest/ 

lub

http://mydomain.com/meteortest:3000 
+0

Właśnie zacząłem używać EC2 i nie zrobiłem żadnej pracy z serwerem przed tygodniem. Zdecydowanie jestem n00b. –

+0

Czy programujesz lub wdrażasz na tym serwerze? –

+0

@TomColeman Developing. –

Odpowiedz

11

Sposób, Meteor ustawia główny adres URL jest za pomocą zmiennej środowiskowej o nazwie root_url:

http://docs.meteor.com/#meteor_absoluteurl

Więc można uruchomić instancję Meteor tak: root_url = "http://mydomain.com/"meteor --port 80

Jeśli jednak chcesz, aby instancja meteora była obsługiwana z folderu (np. http://mydomain.com/meteortest), będziesz musiał użyć nginx do przekazania portów (patrz przykład Tyr'a), ale zastąp linię:

location/{ 

z:

location /meteortest { 

i zmienić root_url odpowiednio. Jeśli nadal nie możesz uzyskać dostępu do swojej domeny z zewnątrz, być może nie ustawiłeś poprawnie grup zabezpieczeń dla EC2. Musisz otworzyć port 80. Więcej informacji o tym, jak to zrobić, można znaleźć tutaj: http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/using-network-security.html

+1

Jest to szczególnie przydatne, jeśli chcesz przetestować dowolny pakiet kont- * localhost (lub jeśli masz domenę wskazaną na adres IP twojego środowiska pracy, tak jak ja). – mmmeff

7

można skonfigurować nginx do portu proxy 3000 do domeny. Coś w rodzaju:

server { 
    listen 80; 
    server_name meteortest.mydomain.com; 
    access_log /var/log/nginx/meteortest.access.log; 
    error_log /var/log/nginx/tmeteortest.error.log; 
    location/{ 
    proxy_pass http://localhost:3000; 
    include /etc/nginx/proxy_params; 
    } 
} 

Aby uzyskać więcej informacji, zobacz artykuł http://wiki.nginx.org/HttpProxyModule.

Jednak uruchamianie meteoru na porcie 3000 jest środowiskiem programistycznym. Jeśli chcesz użyć go w produkcji, uruchom "pakiet meteorowy", a następnie wykonaj README wewnątrz wygenerowanego archiwum.

4

Myślę, że problem polega na tym, że port 3000 jest prawdopodobnie zablokowany przez zaporę Amazona. Można spojrzeć na otwieranie go, spróbuj rozwiązania Tyr, albo spróbować właśnie działa meteor z

meteor --port 80 

Możesz potrzebować uprawnień roota (tj sudo), aby to zrobić.

1

Uruchamianie bezpośrednio na porcie 80 wymagałoby uprawnień użytkownika root, którego tak naprawdę nie chcesz, aby twój serwer WWW działał jako - uruchamianie to jak root i deescalating do zwykłego użytkownika jest możliwe, ale nie jest tak naprawdę idealny, jak może się okazać, że błąd programowania w pewnym momencie zapomni o deescalate privs i nie zobaczysz żadnych błędów z tego.

W wielu przypadkach nie potrzebuję/nie muszę uruchamiać modułu równoważenia obciążenia, aby korzystać z wielu rdzeni, zwłaszcza jeśli używam pojedynczych rdzeni t1 lub t2 AWS, które skalowałem tak, jak potrzebuję im - stąd najlepsza rada mam seen jest po prostu użyć jądra Linux zdolność zrobić przekierowanie portu, port mapowania portu 80 do 3000, jak to

$ sudo iptables -A PREROUTING -t nat -i eth0 -p tcp \ 
          --dport 80 -j REDIRECT --to-port 3000 

łatwo i przyjemnie i nic innego do roboty - i super wydajny w tym samym czasie, gdy w obsługę żądań nie są zaangażowane dodatkowe procesy.