问题
My question is about running HTTP-server in combination with PM2.
The problem i face is that:
- HTTP-server requires as input a folder which is the root of the website and a port number to run the website on.
- PM2 doesn't recognize the HTTP-server command, even when HTTP-server is installed with the -g option.
So i tried the following (note the double dash which should pass the parameters to the HTTP-server script:
/node_modules/http-server/lib$ pm2 start http-server.js -- /home/unixuser/websiteroot -p8686
But it doesn't work.
I also tried:
http-server /home/unixuser/websiteroot -p8686
Which does work, but doesn't have the great support of pm2 ?
Any suggestions would be great, thanks!
回答1:
You almost had it.
Check where http-server is located by executing:
$ which http-server
You should get something like this /usr/bin/http-server
Then cd
to the directory you want to serve files from and execute:
$ pm2 start /usr/bin/http-server --name my-file-server -- -p 8080 -d false
--name my-file-server
is optional, but --
is required to pass arguments through to the http-server
command.
回答2:
pm2 start 'http-server-spa websiteroot index.html 8080'
回答3:
pm2 start <location>/http-server --name http-server -- -p <port> -d false
or
PM2 modules it self has in-build static file to be served, which is similar to http-server https://pm2.keymetrics.io/docs/usage/expose/
pm2 serve <path> <port>
回答4:
if we have a build generated by grunt,then go to its path and hit:
~/app/build/prod$ sudo pm2 start /usr/local/bin/http-server -p 8080
Now check app status at localhost:8080
来源:https://stackoverflow.com/questions/31804966/running-nodejs-http-server-forever-with-pm2