Odpowiedzi:
Istnieje kilka dobrych powodów, aby trzymać inny serwer WWW przed Node.js:
Zastrzegam drugi punkt, mówiąc, że prawdopodobnie powinieneś podawać swoje pliki statyczne za pośrednictwem CDN lub zza serwera buforującego, takiego jak Varnish. Jeśli to robisz, tak naprawdę nie ma znaczenia, czy źródłem jest Node, Nginx czy Apache.
Zastanów się w szczególności nad nginx: jeśli używasz websockets, upewnij się, że korzystasz z najnowszej wersji nginx (> = 1.3.13), ponieważ dodała ona tylko obsługę aktualizacji połączenia w celu korzystania z websockets.
:80bez uruchamiania węzła jako root, po prostu używając authbind: thomashunter.name/blog/using-authbind-with-node-js
Aby dodać jeszcze jeden powód do odpowiedzi pauljza, używam serwera frontonu, aby mógł obsługiwać 502 strony błędów podczas restartowania serwera backend lub z jakiegoś powodu ulega awarii. Dzięki temu użytkownicy nigdy nie otrzymają błędu dotyczącego niemożności nawiązania połączenia.
Uważam, że używanie Węzła do obsługi plików statycznych jest odpowiednie we wszystkich okolicznościach, o ile wiesz, co robisz . Z pewnością jest to nowy paradygmat używania serwera aplikacji do obsługi plików statycznych, ponieważ tak wiele (co?) Konkurencyjnych technologii (PHP, Ruby, Python itp.) Wymaga serwera WWW takiego jak HTTPD lub Nginx przed serwerami aplikacji .
Każdy obiektywny powód, dla którego kiedykolwiek czytałem przeciwko podawaniu plików statycznych za pomocą Node, opiera się na idei używania tego, co wiesz najlepiej lub używania tego, co jest postrzegane jako lepiej przetestowane / bardziej stabilne. Są to bardzo ważne powody praktycznie, ale mają niewielkie znaczenie czysto techniczne.
O ile nie znajdziesz funkcji, która jest możliwa w przypadku klasycznego serwera WWW, która nie jest możliwa w przypadku Węzła (i wątpię, że to zrobisz), wybierz to, co wiesz najlepiej lub z czym wolisz pracować, ponieważ oba podejścia są w porządku.
Co do Nginx vs Apache - będą „grać” tak samo z Node. Powinieneś porównać je bez względu na Węzeł.
systemd, pm2itd Tak więc są plusy i minusy, a użytkownik powinien wybrać swój jad, że tak powiem .
express.staticporadzi sobie z tagami ETag i nagłówkami kontroli pamięci podręcznej.