我大部分时间都遵循 html5boilerplate nginx 设置,但是当我包含时,一切都会中断expires.conf
。
HTML5BP 用于 Nginx 的设置:https://github.com/h5bp/server-configs/tree/master/nginx
我只做了一些很小的改动,下面会列出来。conf/expires.conf
但是,在 include 中,所有内容都返回 404。
顺便说一句,我也不认为这只是 HTML5BP。我也关注了本指南并且图像也损坏了(在 Nginx 提示#5 静态资产过期的标题下)。
location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
access_log off;
log_not_found off;
expires 360d;
}
我在 EC2 弹性负载均衡器后面的服务器上使用 nginx。
这是我的 /etc/nginx/sites-enabled/example.conf:
server {
listen 80;
server_name localhost;
location / {
root /var/www/html/example.com;
index index.html index.htm;
}
# Specify a charset
charset utf-8;
# Custom 404 page
error_page 404 /404.html;
include conf/base.conf;
}
我注意到一件奇怪的事情是,如果我检查errors.log它有这个......
2013/03/25 04:38:45 [error] 17920#0: *1 open() "/usr/share/nginx/html/index.html" failed (2: No such file or directory)
但是我将目录从 /usr/share/nginx/html 改掉了,所以我不知道为什么它会在那里找?
答案1
问题是我将 nginx 根路径从 /usr/share/nginx 或默认路径更改为 /var/www/html/site.com
这意味着 root 命令应该出现在我的服务器指令中,而不是我的位置指令中,以便它向下流动。因为它看不到任何定义的 root,所以它使用二进制默认值
http://docs.ngx.cc/en/latest/topics/tutorials/config_pitfalls.html