Nginx设置缓存后,访问网页404 问题原因及解决方案(顺手记) ...

打印 上一主题 下一主题

主题 662|帖子 662|积分 1986

问题描述

在Nginx中设置缓存expires后,结果重启nginx,网站访问404了。
Nginx文件

  1. server {
  2.         listen 80;
  3.         server_name bird.test.com;
  4.         location / {
  5.                         root /app/code/bird/;
  6.                 index index.html;
  7.         }
  8. #uri 包含 html、js、css 结尾的文件缓存一天
  9. #~* 后支持正则表达式
  10.         location ~* \.(html|js|css)$ {
  11.                 expires 1d;
  12.         }
  13.         location ~* \.(jpg|jpeg|png|gif|bmp)$ {
  14.                 expires 1h;
  15.         }
  16. }
复制代码
解决方案

查看error_log日志

  1. 2024/06/05 00:00:17 [error] 3189#3189: *1 open() "/etc/nginx/html/index.html" failed (2: No such file or directory), client: 192.168.100.1, server: bird.test.com, request: "GET /index.html HTTP/1.1", host: "bird.test.com"
复制代码
由上可以发现,在访问时,哀求的URI是/etc/nginx/html/index.html,而不是在 location中指定的root /app/code/bird/index.html。
问题原因



  • Nginx中location模块是独立的,因此在不同的locaiton中,root不共享。
  • 在Nginx子配置文件中,我将root语句写在location内,再新建location写expires后,这两个location实在并不是一个。
  • 因此在匹配到正则的.html后,访问了默认的nginx路径,导致文件不存在。
修改文件并测试

Nginx文件

  1. server {
  2.         listen 80;
  3.         server_name bird.test.com;
  4.         root /app/code/bird/; # 每个location区域都是独立的,如果root写在location内,则在指定缓存时的location中也要添加上root
  5.         location / {
  6.                 index index.html;
  7.         }
  8. #uri 包含 html、js、css 结尾的文件缓存一天
  9. #~* 后支持正则表达式
  10.         location ~* \.(html|js|css)$ {
  11.                 expires 1d;
  12.         }
  13.         location ~* \.(jpg|jpeg|png|gif|bmp)$ {
  14.                 expires 1h;
  15.         }
  16. }
复制代码
测试


   缓存设置乐成。
  

  • 日志:
  1. 192.168.100.1 - - [05/Jun/2024:00:11:15 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36"
复制代码
总结



  • Nginx中,location内的配置是独立的,不同location不共享配置。
  • 假如必要设置缓存:

    • 要么在原location中直接设置
    • 要么在新location中重制定root
    • 要么直接在server下写root。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

愛在花開的季節

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表