configure nginx in host server with https enabled and route all traffic container


Detail steps to configure nginx in host server with https enabled and route all traffic from nginx to docker container


Here are the detailed steps to configure Nginx as a reverse proxy on a host server with HTTPS enabled and route all traffic from Nginx to a Docker container:

  1. Install Nginx on the host server:

You can install Nginx on your host server using your system’s package manager. For example, on a Debian-based system, you can use the following command:

csharpCopy codesudo apt-get install nginx
  1. Create an Nginx configuration file:

Create a new Nginx configuration file in the /etc/nginx/sites-available directory. You can name the file whatever you like, for example, my_site.

bashCopy codesudo nano /etc/nginx/sites-available/my_site
  1. Configure Nginx:

In the Nginx configuration file, add the following code to configure Nginx as a reverse proxy:

perlCopy codeserver {
    listen 80;
    listen [::]:80;
    server_name example.com;

    location / {
        proxy_pass http://<docker_container_ip>:<docker_container_port>;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

In the above code, replace example.com with your domain name and <docker_container_ip> and <docker_container_port> with the IP address and port number of your Docker container, respectively.

  1. Enable the Nginx configuration:

To enable the Nginx configuration, create a symbolic link from the configuration file to the /etc/nginx/sites-enabled directory:

bashCopy codesudo ln -s /etc/nginx/sites-available/my_site /etc/nginx/sites-enabled/
  1. Verify Nginx configuration:

Verify that the Nginx configuration is valid by running the following command:

Copy codesudo nginx -t
  1. Restart Nginx:

Restart Nginx to apply the changes:

Copy codesudo systemctl restart nginx
  1. Obtain SSL certificate:

To enable HTTPS, you need to obtain an SSL certificate for your domain. You can obtain a free SSL certificate from Let’s Encrypt using tools like Certbot.

  1. Configure HTTPS:

Add the following code to your Nginx configuration file to configure HTTPS:

cssCopy codeserver {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name example.com;

    ssl_certificate /path/to/certificate.crt;
    ssl_certificate_key /path/to/certificate.key;

    location / {
        proxy_pass http://<docker_container_ip>:<docker_container_port>;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Replace example.com with your domain name, <docker_container_ip> and <docker_container_port> with the IP address and port number of your Docker container, and /path/to/certificate.crt and /path/to/certificate.key with the

Rajesh Kumar
Follow me
Latest posts by Rajesh Kumar (see all)
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x