A服务器 代理 B服务器的内容,但发现用户访问A服务器只能获取到部分内容。
检查几个问题:
1 直接访问B服务器,正常
2 访问非PHP内容,正常
3 关闭压缩也没有解决问题,与压缩无关
试过 gzip和gunzip的功能,都没有解决,不过这两个跟缓存压缩数据有帮助哦
后来查得两篇文章,解决了,是 fastcgi_temp 目录的读写权限问题。表现症状:Nginx的错误日志出现大量类似如下的错误:
2013/08/25 00:41:28 [crit] 32763#0: *5439 open() "/Data/apps/nginx/fastcgi_temp/5/02/0000000025" failed (13: Permission denied) whil e reading upstream, client: 203.171.237.2, server: www.aslibra.com, request: "GET /thread.html HTTP/1.0", upstream: "f astcgi://127.0.0.1:9000", host: "www.aslibra.com", referrer: "http://www.aslibra.com/f.html"
参考文章里的解决方式:
从这句判断 可能是 生成的文件过大 要以 文件的形式存放 然后 nginx 有没有权限读取造成.于是 chmod -R 764 /usr/local/nginx/fastcgi_temp/ 问题解决.
参考之二:fastcgi_temp 目录的作用
先简单的说一下 Nginx 的 buffer 机制,对于来自 FastCGI Server 的 Response,Nginx 将其缓冲到内存中,然后依次发送到客户端浏览器。缓冲区的大小由 fastcgi_buffers 和 fastcgi_buffer_size 两个值控制。
比如如下配置:
fastcgi_buffers 8 4K; fastcgi_buffer_size 4K;
fastcgi_buffers 控制 nginx 最多创建 8 个大小为 4K 的缓冲区,而 fastcgi_buffer_size 则是处理 Response 时第一个缓冲区的大小,不包含在前者中。所以总计能创建的最大内存缓冲区大小是 8*4K+4K = 36k。而这些缓冲区是根据实际的 Response 大小动态生成的,并不是一次性创建的。比如一个 8K 的页面,Nginx 会创建 2*4K 共 2 个 buffers。
当 Response 小于等于 36k 时,所有数据当然全部在内存中处理。如果 Response 大于 36k 呢?fastcgi_temp 的作用就在于此。多出来的数据会被临时写入到文件中,放在这个目录下面。
内存中缓冲了 36Kb,剩下的会写入的文件中。而实际的情况是,运行 Nginx Process 的用户并没有 fastcgi_temp 目录的写权限,于是剩下的数据就丢失掉了。
解决方法就比较简单了,粗暴的删掉 fastcgi_temp 目录或者温柔的 chown + chmod 都可以解决问题
相关推荐
Restarting nginx daemon: nginxcat: /usr/local/nginx/logs/nginx.pid: No such file or directorykill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec … or kill -l [sigspec]nginx not ...
此数据为go语言收集nginx容器日志,测试数据,方便代码的测试。另外我还会在文章中放入自写的数据生成代码,方便数据的产生。
用nginx怎么返回json格式或者文本格式的数据?其实很简单,如下代码: 1、返回文本格式 location ~ ^/get_text { default_type text/html; return 200 'hello world!'; } 2、返回json格式 location ~ ^/get_json...
主要介绍了详解nginx请求头数据读取流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
nginx 离线安装包nginx 离线安装包
nginx压缩包和安装手册
Nginx安装包Nginx安装包
nginx镜像资源nginx镜像资源nginx镜像资源nginx镜像资源nginx镜像资源nginx镜像资源
开发网关项目时,在请求时往请求头header中放入了签名sign_key信息,在接收请求时再从header中拿出,在本地调试时是可以的,但上线之后通过Nginx代理之后发现拿不到。 location / { proxy_set_header X-Real-IP $...
关于Basic Authorization 在HTTP中,Basic Authorization... ...例如,提供的用户名是Aladdin、口令是open sesame,则拼接后的结果就是Aladdin:open sesame,然后再将其用Base64编码,得到QWxhZGRpbjpvcGVuIHNlc2FtZQ==。...
主要介绍了Nginx session丢失问题处理解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
nginx替代apache,nginx替代方案,nginx代替apache与jbos,nginx+jboss结合
本文介绍下,重启nginx服务后丢失nginx.pid文件的解决方法,有需要的朋友,可以作个参考
3.找到D:\nginx\conf下nginx.conf文件用记事本打开 在文段末尾大括号前加上 include proxy.conf;(就是加载刚刚新建的那个文件(注意路径)) 4.进入cmd 进入D盘: d: 进到nginx文件夹下:cd nginx 启动nginx.exe:...
主要介绍了Nginx服务器中配置超时时间的方法,同时也对Nginx中的时间管理机制作了详细的介绍,需要的朋友可以参考下
解压完成后 启动nginx 1) 直接双击该目录下的nginx.exe,即可启动nginx服务器 ...# 优雅的停止nginx服务器,如果有未处理的数据,等待处理完成之后停止 D:/resp_application/nginx-1.13.5> nginx -s quit
nginx.conf nginx-1.20.1.tar.gz 这是关于centos8的nginx 和nginx 的配置https文件
Nginx入门到实践 Nginx 中间件Nginx入门到实践 Nginx 中间件
第1章 Nginx简介.pdf第2章 Nginx服务器的安装与配置.pdf第3章 Nginx的基本配置与优化.pdf第4章 Nginx与PHP(FastCGI)的安装、配置与优化.pdf第5章 Nginx与JSP、ASP.NET、Perl的安装与配置.pdf第6章 Nginx HTTP负载...