how to run node js on dedicated server?

后端 未结 1 1179
青春惊慌失措
青春惊慌失措 2020-12-07 06:06

I am doing a chat app and integrating it on a website. When i execute teh command \'node index.js\' on the local server everything works fine. But when i try installing node

相关标签:
1条回答
  • 2020-12-07 06:50

    You first need to install Node in a correct way. I wrote a tutorial about it: How to get Node 6.7.0 on Linux (of course you can use newer versions, just change the version in the commands).

    Basically it's something like this - change the version to the one you like:

    # change dir to your home:
    cd ~
    # download the source:
    curl -O https://nodejs.org/dist/v6.1.0/node-v6.1.0.tar.gz
    # extract the archive:
    tar xzvf node-v6.1.0.tar.gz
    # go into the extracted dir:
    cd node-v6.1.0
    # configure for installation:
    ./configure --prefix=/opt/node-v6.1.0
    # build and test:
    make && make test
    # install:
    sudo make install
    # make a symlink to that version:
    sudo ln -svf /opt/node-v6.1.0 /opt/node
    

    I recommend building Node from source and always running make test but you can also install a binary package which is faster - just make sure you understand the issues with paths and hashbang lines if you do so - more info on that and more install options are described in my tutorial.

    Then you need to make sure that your application is started every time the server is restarted. I recommend using Upstart if you can.

    Using Upstart, save something like this in /etc/init/YOURAPP.conf:

    # When to start the service
    start on runlevel [2345]
    
    # When to stop the service
    stop on runlevel [06]
    
    # If the process quits unexpectadly trigger a respawn
    respawn
    
    # Start the process
    exec start-stop-daemon --start --chuid node --make-pidfile --pidfile /www/YOURAPP/run/node-upstart.pid --exec /opt/node/bin/node -- /www/YOURAPP/app/app.js >> /www/YOURAPP/log/node-upstart.log 2>&1
    

    Just change:

    • YOURAPP to the name of your own app
    • /opt/node/bin/node to your path to node
    • /www/YOURAPP/app/app.js to the path of your Node app
    • /www/YOURAPP/run to where you want your PID file
    • /www/YOURAPP/log to where you want your logs
    • --chuid node to --chuid OTHERUSER if you want it to run as a different user than node

    (make sure to add a user with a name from --chuid above)

    With your /etc/init/YOURAPP.conf in place you can safely restart your server and have your app still running, you can run:

    start YOURAPP
    restart YOURAPP
    stop YOURAPP
    

    to start, restart and stop your app - which would also happen automatically during the system boot or shutdown.

    For more info see those answers about:

    • Installing Node
    • Running Node on servers

    You can also use systemd for that but there are some differences as the system is much more complicated and often leads to some problems.

    0 讨论(0)
提交回复
热议问题