Posted March 13, 2018 6.8k views
NginxNode.jsDigitalOceanDNSUbuntu 16.04

I have seen a few questions like mine, nut none solving my problem. I set up SSL with my web app to protect it, but after I have done that, I keep getting the error “ERRTOOMANY_REDIRECTS”. I’m not sure if this is a problem with my NGINX file, or another one.
Here is the code for my NGINX file:

# HTTP — redirect all traffic to HTTPS
server {
    listen 80;
    listen [::]:80 default_server ipv6only=on;
    return 301 https://$host$request_uri;

# HTTPS — proxy all requests to the Node app
server {
    # Enable HTTP/2
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name *****.io;

    # Use the Let’s Encrypt certificates
    ssl_certificate /etc/letsencrypt/live/*****.io/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/*****.io/privkey.pem;

    # Include the SSL configuration from
    include snippets/ssl-params.conf;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-NginX-Proxy true;
        proxy_pass http://localhost:3000/;
        proxy_ssl_session_reuse off;
        proxy_set_header Host $http_host;
        proxy_cache_bypass $http_upgrade;
        proxy_redirect off;

I’m sure my server is running on port 3000. Also, I’m not sure if it’s important but my folder with my Node app doesn’t have the domain extention in it…


These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
3 answers


You need to specify the server_name for the HTTP block add this line to the first server block


Then restart Nginx and try again.

Hope this helps.

  • Thanks! That fixed the redirect problem… Now I am getting the Welcome to NGINX page… What can I do?

    • Try replacing listen [::]:80 default_server ipv6only=on; with just listen [::]:80; in the first server block as well. It’s most likely conflicting with nginx’s default default_server block.