Zdravim vas
Mam mensie VPS s NGINX a tam ma zlozky www1,www2,www3 pre kazdy web a domenu. Vsetko na porte 80.
Problem nastava ked spustim nodejs kedze aj on potrebuje port 80. Da sa to nejak presmerovat aby node bezal na porte 4000 ale ked niekto zada www.domena.sk tak to bude stale 80?
Ano, tebou navržené řešení je správné. Dělá se to tak, že spustíš Node.js na nějakém jiném portu. Přibližně takhle:
http.createServer(
...
).listen(8000, "127.0.0.1");
Potom nadefinuješ v Nginx nový web, který se bude vyřizovat na tom lokálním portu. Nginx pak funguje jako reverzní proxy. Konfigurace bude asi taková (zkráceno na to zásadní):
upstream web5 {
server 127.0.0.1:8000;
}
server {
listen 80;
listen [::]:80;
server_name domena.cz www.domena.cz;
location / {
proxy_pass http://web5/;
}
}
Dakujem pomohlo :)
Este mam jednu otazku ako na autostart aplikacie (npr po vypadku).
Mam 1 > .sh v /home/aplikacia/nieco.sh
2 > nodejs blahblah.js
na to aby to pezalo na pozadi som pouzil SCREEN
Nejsem odborník na Node.js, ale co jsem pochopil, tak se k tomu obvykle používá process manager. Dá se nainstalovat pomocí npm (Node Packaged Modules) jako balík pm2. Ten by se měl starat o spouštění jednotlivých aplikací a jejich běh na pozadí. K tomuhle už ale bude třeba otevřít dokumentaci k Node.js, tohle už není záležitost Debianu.
No tak som to nejak vyriesil za pomoci screen-u
Krok 1
nano /etc/init.d/blah
Krok 2
#!/bin/bash
case "$1" in
start)
cd /home/bordel && /usr/bin/screen -s /bin/bash -dmS MENO ./run.sh
echo "Bordel started (maybe)"
;;
stop)
screen -X -S MENO kill
echo "Bordel shutting down"
;;
*)
echo "Usage: /etc/init.d/blah {start|stop}"
exit 1
;;
esac
exit 0
Krok 3
update-rc.d blah defaults
Podobne aj pre Node
cd /var/www5 && /usr/bin/screen -s /bin/bash -dmS nodemeno node blah.js
Este treba prist na to aby sa jeden spustil asi o 30s neskor po starte
Vyriesene (spojil som tie 2sh, a pridal sleep 30) ;D
#!/bin/bash
case "$1" in
start)
cd /home/elipso && /usr/bin/screen -s /bin/bash -dmS MENO ./run.sh
echo "Server started"
;;
stop)
screen -X -S MENO kill
echo "Server shutting down"
;;
*)
echo "Usage: /etc/init.d/MENO {start|stop}"
exit 1
;;
esac
sleep 30
case "$1" in
start)
cd /var/www5 && /usr/bin/screen -s /bin/bash -dmS MENO node node.js
echo "node.js started"
;;
stop)
screen -X -S MENO kill
echo "Server node.js shutting down"
;;
*)
echo "Usage: /etc/init.d/MENO {start|stop}"
exit 1
;;
esac
exit 0