Home > Web Front-end > JS Tutorial > From Code to the Cloud: A Step-by-Step Guide to Deploying Your Node.js App on AWS ECI

From Code to the Cloud: A Step-by-Step Guide to Deploying Your Node.js App on AWS ECI

Linda Hamilton
Release: 2025-01-02 14:22:39
Original
228 people have browsed it

From Code to the Cloud:

A Step-by-Step Guide to Deploying Your Node.js App on AWS EC2 II

The part one dealt with the following:

  1. Setting up an AWS account
  2. Creating an EC2 instance
  3. Installing Node.js and NPM
  4. Creating a simple Node.js app
  5. Installing and configuring PM2
  6. Using SSH to connect to your EC2 instance
  7. Deploying your app to the EC2 instance

Read the part one here.

In this part, we will cover the following:

? Using Nginx as a reverse proxy
? Setting a subdomain for your app
? Configuring SSL using certbot

Let's get the partyy started
From Code to the Cloud: A Step-by-Step Guide to Deploying Your Node.js App on AWS ECI

Install the Nginx reverse proxy

ssh into your EC2 instance

ssh -i "your.pem" ubuntu@<your-ec2>
sudo su - # to get root access
Copy after login
Copy after login

Install nginx

sudo apt-get update
sudo apt-get install nginx
Copy after login
Copy after login

check if nginx is installed

nginx -v  #nginx version: nginx/1.18.0 (Ubuntu)
Copy after login
Copy after login

start nginx

sudo service nginx start
Copy after login
Copy after login

check if nginx is running

sudo service nginx status
Copy after login
Copy after login

From Code to the Cloud: A Step-by-Step Guide to Deploying Your Node.js App on AWS ECI

Configure Nginx as a reverse proxy

Go to the nginx configuration file

vi /etc/nginx/sites-available/default
Copy after login

Add the following lines to the file

server {
    listen 80;
    server_name your-domain.com; # replace with your domain name

    location / {
        proxy_pass http://localhost:5000; # replace with your app's port
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
Copy after login

Save and exit the file

:wq
Copy after login

Test the configuration

sudo nginx -t
Copy after login

Restart nginx

sudo service nginx restart
Copy after login

Go the Route 53 and add a new record

  • Create a new record and add the public IP address of your server From Code to the Cloud: A Step-by-Step Guide to Deploying Your Node.js App on AWS ECI

From Code to the Cloud: A Step-by-Step Guide to Deploying Your Node.js App on AWS ECI

Installing Core from Snap

This is a snap package that provides the core functionality of snapd and the snap command-line tool. It is required to install other snaps.

sudo snap install core; 
sudo snap refresh core
Copy after login

Remove Certbot if it's already installed

sudo apt remove certbot
Copy after login

Install Certbot

sudo snap install --classic certbot
Copy after login

Create a symbolic link

sudo ln -s /snap/bin/certbot /usr/bin/certbot
Copy after login

change the following lines to the server block

ssh -i "your.pem" ubuntu@<your-ec2>
sudo su - # to get root access
Copy after login
Copy after login

Check status and reload nginx

sudo apt-get update
sudo apt-get install nginx
Copy after login
Copy after login

Run Certbot (obtain free ssl)

nginx -v  #nginx version: nginx/1.18.0 (Ubuntu)
Copy after login
Copy after login

Verify certbot renewal

sudo service nginx start
Copy after login
Copy after login

From Code to the Cloud: A Step-by-Step Guide to Deploying Your Node.js App on AWS ECI

Enable automatic renewal

sudo service nginx status
Copy after login
Copy after login

Conclusion

By following these steps, you can easily set up a subdomain on your server and obtain a free SSL certificate using Certbot. This will help you secure your website and improve its performance.

The above is the detailed content of From Code to the Cloud: A Step-by-Step Guide to Deploying Your Node.js App on AWS ECI. For more information, please follow other related articles on the PHP Chinese website!

source:dev.to
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template