Nginx使用总结

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: Nginx使用总结

 

如何控制CDN文件在浏览器的缓存时间?

腾讯云 CDN 默认支持 源站的 Cache-Control 设置

目前暂不支持配置Cache-Control头部,因此无法在CDN节点上配置max-age,但CDN节点会继承源站的max-age,因此只需要在源站的服务器上配好即可。

先看下请求的cache-control 是否为

Cache-Control:

no-cache,如果是,则在nginx配置中加如下参数

要使静态文件缓存时间有效

add_header    Cache-Control  max-age=518400;//6天内缓存有效

 

浏览器中关于Cache的3属性:

1. Cache-Control:

设置相对过期时间, max-age指明以秒为单位的缓存时间. 若对静态资源只缓存一次, 可以设置max-age的值为315360000000 (一万年). 比如对于提交的订单,为了防止浏览器回退重新提交,可以使用Cache-Control之no-store绝对禁止缓存,即便浏览器回退依然请求的是服务器,进而判断订单的状态给出相应的提示信息!

Http协议的cache-control的常见取值及其组合释义:

no-cache: 数据内容不能被缓存, 每次请求都重新访问服务器, 若有max-age, 则缓存期间不访问服务器.

no-store: 不仅不能缓存, 连暂存也不可以(即: 临时文件夹中不能暂存该资源).

private(默认): 只能在浏览器中缓存, 只有在第一次请求的时候才访问服务器, 若有max-age, 则缓存期间不访问服务器.

public: 可以被任何缓存区缓存, 如: 浏览器、服务器、代理服务器等.

max-age: 相对过期时间, 即以秒为单位的缓存时间.

no-cache, private: 打开新窗口时候重新访问服务器, 若设置max-age, 则缓存期间不访问服务器.

-  private, 正数的max-age: 后退时候不会访问服务器.

-  no-cache, 正数的max-age: 后退时会访问服务器.

 

允许访问以下地址时白名单过滤

       location /charge

               {

               proxy_pass http://localhost:8882;

               proxy_set_header Host $host;

               proxy_set_header X-Real_IP $remote_addr;

               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

               add_header Access-Control-Allow-Origin *;

               add_header Access-Control-Allow-Headers X-Requested-With;

               add_header Access-Control-Allow-Methods GET,POST,OPTIONS;

               allow 121.78.149.227;

               allow 121.78.150.227;

               allow 121.79.251.126;

               allow 121.77.171.211;

               deny all;

               }

 

解决:NET::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK)

某一天发现tomcat项目被nginx代理后,有些图片变成损坏的感觉

二、原因及解决方案

常见的原因有如下几种情况:

1、nginx的缓冲区(Proxy Buffer)设置较小

修改配置如下:

proxy_buffer_size 1024k;
proxy_buffers 16 1024k;
proxy_busy_buffers_size 2048k;
proxy_temp_file_write_size 2048k;

2、nginx的临时目录(/proxy_temp)过大或没有权限写入缓存文件

当代理文件大小超过配置的proxy_temp_file_write_size值时,nginx会将文件写入到临时目录下(默认为/proxy_temp)。

如果nginx中/proxy_temp过大或者没有写权限,缓存文件就写不进去了。

修改权限:

chown -R nobody:nobody /usr/local/nginx/proxy_temp
  • 直接删除Nginx缓存文件;
# rm -rf  /usr/local/nginx/proxy_temp
  • 设置Nginx的缓存过期时间;
  • 调整/proxy_temp权限为配置nginx的那个用户;
chown -R www:www /usr/local/nginx/proxy_temp

3、磁盘空间不够

删掉磁盘一些日志 文件,释放下空间。

后来想了下,应该是服务器做了迁移后导致的目录权限的问题。

4.access.log文件太大

使用覆盖日志的方法清理Nginx日志文件

echo "" > /data/.logs/nginx_logs/access.log

如果不需要日志文件就直接关闭(不建议),nginx.conf

access_log off;

相关实践学习
Serverless极速搭建Hexo博客
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
目录
相关文章
|
2月前
|
负载均衡 应用服务中间件 Linux
|
25天前
|
缓存 负载均衡 应用服务中间件
Nginx介绍和使用
本文介绍了Nginx,一个轻量级、高并发处理能力的高性能HTTP和反向代理服务器,涵盖其安装、配置、负载均衡、缓存以及与操作系统配合使用的详细方法。
36 0
|
2月前
|
负载均衡 安全 前端开发
nginx的一些总结
nginx的一些总结
|
2月前
|
应用服务中间件 开发工具 nginx
|
6月前
|
缓存 负载均衡 算法
Nginx问题汇总
Nginx问题汇总
58 0
|
缓存 负载均衡 算法
Nginx介绍
Nginx介绍
134 0
|
负载均衡 应用服务中间件 nginx
五分钟进步系列之nginx(一)
五分钟进步系列之nginx(一)
|
缓存 负载均衡 算法
Nginx——详解
Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。
147 0
Nginx——详解
|
负载均衡 监控 算法
Nginx 的使用
1、Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。 2、Nginx是一款轻量级的Web服务器/反向代理服务器以及电子邮件代理服务器,并在一个BSD-like协议下发行。
|
应用服务中间件 Apache 开发工具
关于Nginx,你需要知道的!
关于Nginx,你需要知道的!
189 0