1

When trying to get Nginx to use a certain directory for css files, I cannot seem to get the path to resolve: I keep getting a 404.

server {
    listen       443 ssl;
    server_name  localhost;

    ssl_certificate      /etc/ssl/servercert.pem;
    ssl_certificate_key  /etc/ssl/serverkey.pem;

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    root /var/www/ssl;

    location ~ ^/css/([a-z]+.css)$ {
        try_files /home/server/css/$1 =404;
        access_log  /var/log/nginx/loc.log test;
    }
}

I have tried combinations of alias and root in combination with the try_files but I cannot seem to get them to resolve. What is the proper method of accomplishing a server side rewrite to another directory in Nginx (I am migrating from Lighttpd)?

3
  • Does the file /var/www/ssl/home/server/css/<whatever>.css exist? Oct 17, 2018 at 3:21
  • If the css directory is in /home/server/, you just need to use root /home/server;. Otherwise, tell us the URI of one of your CSS files together with the full path to that file in the filesystem. Oct 17, 2018 at 8:33
  • The path to a css file is /home/server/css/main.css (accessed with a URI of example.com/css/main.css).
    – Rob
    Oct 17, 2018 at 10:55

1 Answer 1

1

With help from the comments and this question I was able to figure out the proper configuration:

server {
    listen       443 ssl;
    server_name  localhost;

    ssl_certificate      /etc/ssl/servercert.pem;
    ssl_certificate_key  /etc/ssl/serverkey.pem;

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    root /var/www/ssl;

    location ~ ^/css/([a-z]+.css)$ {
        root /home/server/css;
        try_files /$1 =404;
        access_log  /var/log/nginx/loc.log test;
    }
}

In my earlier attempts I was missing the leading / in the try_files.

1
  • You can also use `location /css { root /home/server; try_files $uri $uri/ =404; } Oct 17, 2018 at 20:31

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .