Używam serwera node.js, który będzie obsługiwał żądania na porcie 80 między innymi. Oczywiście wymaga to, aby aplikacja działała jako root (w systemie Linux).Jak uruchomić plik node.js jako użytkownik inny niż root?
Patrząc na ten post (http://syskall.com/dont-run-node-dot-js-as-root) jako przykład jasne jest, że istnieją proste sposoby, aby umożliwić uruchamianie węzła jako użytkownik inny niż root, ale zastanawiam się, czy ktoś ma poglądy na temat zalet/wad różne metody sugerowane:
Kod: używać setuid() rozwijanej od nasady do non-uprzywilejowanej użytkownika po nasłuchuje na porcie 80 jest ustalone.
za pomocą serwera proxy jakiegoś przekierować żądania do portu> 1024 (a więc nie trzeba węzeł uruchomić jako root)
użyciu tabel IP do przekazania do innego portu (węzła jw nie będzie działać jako root)
Dzięki
Upvoted. Zwróć uwagę, że przynajmniej w systemie Ubuntu powyższe polecenie 'iptables' nie jest trwałe ... aby upewnić się, że reguła zostanie zachowana przy następnym uruchomieniu, musisz upewnić się, że istnieje skrypt startowy, który przywraca reguły' iptables' używając Komenda 'iptables-restore', jak opisano tutaj: http://www.rackspace.com/knowledge_center/article/ubuntu-setup –
Czy opcja 3 jest sposobem, w jaki większość programistów NodeJS wdraża gotowe strony internetowe? Jeśli nie, jak zazwyczaj umożliwiają przeglądarkom klientów łączenie się z portem 80? – trysis
Zależy od twojej sytuacji. Większe wdrożenia używają systemu równoważenia obciążenia z przodu, który jest taki sam, jak w opcji 2. Wiele osób używa Heroku, który używa load balancera z przodu; ponownie opcja 2. Jednakże, jeśli wdrażasz to na serwerze, na którym masz uprawnienia roota, polecam opcję 3. Jest to łatwe i nie musisz się martwić konfigurowaniem odwrotnego proxy. To powiedziawszy, zdecydowanie spójrz na Heroku, jeśli jest to opcja dla ciebie. Dzięki nim wdrożenie jest bardzo łatwe. – Daniel