-->

Deploying a nodejs app to the google cloud platfor

2020-07-17 08:02发布

问题:

I signed up for the free trial of the google cloud platform, and I'm stuck. My application is a node server using express. It needs to connect to a mongodb cluster. I just need to be able to serve a couple of pages. How could I do this using the compute engine. Is there a really simple tutorial to follow to deploy my app? I can't use the app engine because managed vms aren't available in Europe. Thanks.

回答1:

Deploying a node.js app to Google Compute Engine really isn't all that different from deploying it on any other Infrastructure as a Service provider.

Try one of the following tutorials:

  • https://gun.io/blog/tutorial-deploy-node-js-server-with-example/
  • https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-ubuntu-14-04
  • https://strongloop.com/strongblog/node-js-deploy-production-best-practice/

You'll need to spin up a Google Compute Engine VM instance, of course, to deploy to.

You can do this using the gcloud compute instances create command:

gcloud compute instances create --image ubuntu-14-04 --machine-type n1-standard-1 your-instance-name

Then, connect via gcloud compute ssh:

gcloud compute ssh --zone [zone you created your instance in] your-instance-name

You can also do both of these steps from the Cloud Console.



回答2:

I just want to share one of my deployment experience. I found it's the most easy way in all the tutorials I see.

I use google cloud launcher to launch a Bitnami VM, MEAN Stack in my case. They also have a node.js solution.

Then you can follow this tutorial Bitnami Custom Node.js Application. Basically five steps :

  1. create the basic application directory structure under /opt/bitnami/apps.

    apps/myapp

    |- conf

    |- htdocs

    |- data (optional)

  2. put the application code in htdocs folder

  3. edit the configuration file
  4. start the application

    sudo /opt/bitnami/nodejs/bin/node /opt/bitnami/nodejs/bin/forever start myapp.js

or if you use express generated project :

sudo /opt/bitnami/nodejs/bin/node /opt/bitnami/nodejs/bin/forever start ./bin/www
  1. restart the Apache server to refresh new configuration

    sudo /opt/bitnami/ctlscript.sh restart apache