Nginx redirects to default page after adding Lets Encrypt

Amar Ilindra asked:

Everything is working fine until I install Let’s encrypt and modify /etc/nginx/sites-available/default

What is the mistake I’m doing

server {
        listen 80 default_server;
        listen [::]:80 default_server;



        root /var/www/html;


        index index.php index.html index.htm index.nginx-debian.html;
    server_name geekdashboard.com www.geekdashboaard.com;
    return 301 https://$server_name$request_uri;
}

server {

    # SSL configuration

    listen 443 ssl http2 default_server;
    listen [::]:443 ssl http2 default_server;
    include snippets/ssl-geekdashboard.com.conf;
    include snippets/ssl-params.conf;

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt { log_not_found off; access_log off; allow all; }
    location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
        expires max;
        log_not_found off;
    }

    location / {        
    try_files $uri $uri/ /index.php$is_args$args;
        }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
    location ~ /.well-known {
                allow all;
}

}

My answer:


Your server block hasn’t got a root directive to tell nginx where your web site’s files are located. Thus it serves the files from the default location, which are the sample files shipped with nginx.

To solve the problem, add a proper root directive in the server block.


View the full question and answer on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.