在运行托管在云中的无状态 docker 容器的 nginx pagespeed 上偶然发现以下错误。在本地测试时,部署后我没有收到错误,几乎每次请求后都会记录错误。
2022-05-14 22:05:03.316 EAT2022/05/14 19:05:03 [warn] 14#50: [ngx_pagespeed 1.13.35.2-0] Failed to read cache clean timestamp /var/cache/pagespeed/!clean!time!. Doing an extra cache clean to be safe.
Default
2022-05-14 22:05:22.935 EAT2022/05/14 19:05:22 [warn] 14#50: [ngx_pagespeed 1.13.35.2-0] Failed to read cache clean timestamp /var/cache/pagespeed/!clean!time!. Doing an extra cache clean to be safe.
Default
2022-05-14 22:05:25.775 EAT2022/05/14 19:05:25 [warn] 14#50: [ngx_pagespeed 1.13.35.2-0] Failed to read cache clean timestamp /var/cache/pagespeed/!clean!time!. Doing an extra cache clean to be safe.
Default
2022-05-14 22:05:31.825 EAT2022/05/14 19:05:31 [warn] 14#50: [ngx_pagespeed 1.13.35.2-0] Failed to read cache clean timestamp /var/cache/pagespeed/!clean!time!. Doing an extra cache clean to be safe.
Default
2022-05-14 22:05:32.419 EAT2022/05/14 19:05:32 [warn] 13#52: [ngx_pagespeed 1.13.35.2-0] Failed to read cache clean timestamp /var/cache/pagespeed/!clean!time!. Doing an extra cache clean to be safe.
Default
2022-05-14 22:05:35.767 EAT2022/05/14 19:05:35 [warn] 14#50: [ngx_pagespeed 1.13.35.2-0] Failed to read cache clean timestamp /var/cache/pagespeed/!clean!time!. Doing an extra cache clean to be safe.
Default
2022-05-14 22:05:37.443 EAT2022/05/14 19:05:37 [warn] 14#50: [ngx_pagespeed 1.13.35.2-0] Failed to read cache clean timestamp /var/cache/pagespeed/!clean!time!. Doing an extra cache clean to be safe.
Default
2022-05-14 22:05:43.798 EAT2022/05/14 19:05:43 [warn] 14#50: [ngx_pagespeed 1.13.35.2-0] Failed to read cache clean timestamp /var/cache/pagespeed/!clean!time!. Doing an extra cache clean to be safe.
Default
2022-05-14 22:05:46.655 EAT2022/05/14 19:05:46 [warn] 14#50: [ngx_pagespeed 1.13.35.2-0] Failed to read cache clean timestamp /var/cache/pagespeed/!clean!time!. Doing an extra cache clean to be safe.
Default
2022-05-14 22:05:49.654 EAT2022/05/14 19:05:49 [warn] 14#50: [ngx_pagespeed 1.13.35.2-0] Failed to read cache clean timestamp /var/cache/pagespeed/!clean!time!. Doing an extra cache clean to be safe.
正如您所看到的,几乎在每个请求之后都会记录错误......一切正常,但这个日志很烦人,意味着有些事情是不对的。
回答1
什么问题
运行 nginx 的用户无法写入这些目录。
导致错误的配置。
pagespeed FileCachePath "/var/cache/pagespeed/";
pagespeed CreateSharedMemoryMetadataCache "/var/cache/pagespeed/" 102400;
解决方案
- 创建目录
v3
- 创建目录
shm_metadata_cache
- 创建文件
!clean!time!
...
RUN mkdir -p /var/cache/pagespeed/shm_metadata_cache && mkdir -p /var/cache/pagespeed/v3 && touch /var/cache/pagespeed/!clean!time!
...
授予目录和文件的所有权限
...
RUN chmod 777 /var/cache/pagespeed/shm_metadata_cache && chmod 777 /var/cache/pagespeed/v3 && chmod 777 /var/cache/pagespeed/!clean!time!
...
在此处查看有关此问题的更多信息:
https://github.com/apache/incubator-pagespeed-ngx/issues/1516