Last active
January 20, 2023 20:49
-
-
Save LfJohnVo/7b8328ea396f6e24f05a50e3a7c3bc02 to your computer and use it in GitHub Desktop.
Revisions
-
LfJohnVo revised this gist
Jan 20, 2023 . No changes.There are no files selected for viewing
-
LfJohnVo created this gist
Jan 20, 2023 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,64 @@ Step 01: Open ports Open the docker-compose file (docker-compose.yml) and find Nginx image configurations. add SSL secure ports. Note 1: Also you need to know, HTTP listen from PORT:80 and HTTP(s) listen from 443 Note 2: If you are using EC2 server to run your docker swarm, make sure that you have enabled HTTPS ports. If not, add a security group by adding HTTPS ports to it. nginx: image : your_nginx_image/nginx:latest ports : - “80:80” - “443:443” Step 02: Mount certificates into Nginx image You need to copy your certificate files into the Nginx container. nginx: image : your_nginx_image/nginx:latest ports : - “80:80” - “443:443” volumes: - /data/certs:/etc/nginx/certs Step 03: Change Nginx configuration file. Normally your basic configurations look like this. Now we have certifications and keys inside the docker container server { listen 80: server_name www.yoursite.com; location / { proxy_pass http://frontend:500 error_log /var/log/front_end_errors.log; } } But if you set up SSL on the application, You have to pass additional parameters and values. You should listen port which is 80 to 443 and add SSL certificate and Key with it like below. server { listen 443 ssl; server_name www.yoursite.com; ssl_certificate /etc/nginx/certs/your_site_crt_file.crt; ssl_certificate_key /etc/nginx/certs/your_site_crt_file.key; location / { proxy_pass http://frontend:5000/; error_log /var/log/front_end_errors.log; } } Additional section: You should build a Nginx image by adding your new configuration. Your Dockerfile configuration should be like this. While building image we copy Nginx configuration into the image. FROM nginx COPY nginx.conf /etc/nginx/conf.d/nginx.conf After changing the Nginx configuration, build the image with your application and do the docker-compose up. Now you can access your application via https://www.yoursite.com from a web browser.