配置 Nginx 在另一个目录中搜索特定文件

配置 Nginx 在另一个目录中搜索特定文件

当尝试让 Nginx 使用某个目录来存放 css 文件时,我似乎无法获取要解析的路径:我一直收到 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;
    }
}

我尝试过将别名和 root 与 try_files 结合使用,但似乎无法解决它们。在 Nginx 中完成服务器端重写到另一个目录的正确方法是什么(我正在从 Lighttpd 迁移)?

答案1

在评论和的帮助下这个问题我能够找出正确的配置:

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;
    }
}

在我之前的尝试中,我遗漏了 try_files 中的前导 /。

相关内容