![配置 Nginx 在另一个目录中搜索特定文件](https://linux22.com/image/728531/%E9%85%8D%E7%BD%AE%20Nginx%20%E5%9C%A8%E5%8F%A6%E4%B8%80%E4%B8%AA%E7%9B%AE%E5%BD%95%E4%B8%AD%E6%90%9C%E7%B4%A2%E7%89%B9%E5%AE%9A%E6%96%87%E4%BB%B6.png)
当尝试让 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 中的前导 /。