美文网首页
nginx 出现 13: Permission denied

nginx 出现 13: Permission denied

作者: 晓得为_ | 来源:发表于2017-07-13 20:15 被阅读0次

    nginx 出现 13: Permission denied

    查看 nginx 的 error_log

    查看了一下日志文件,发现有下面的错误提示:
    2013/03/13 01:22:17 [crit] 3331#0: *10 open() "/usr/local/lnmp/nginx/fastcgi_temp/3/00/0000000003" failed (13: Permission denied) while reading upstream, client: 124.42.13.230, server: 264.cn, request: "GET /wp-admin/load-scripts.php?c=0&load%5B%5D=jquery,utils,plupload,plupload-html5,plupload-flash,plupload-silverlight,plupload-html4,json2&ver=3.5.1 HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "264.cn", referrer: "http://www.nginx.cn/wp-admin/post-new.php"很明浏览器只加载了部分页面,原因是Permission denied。
    1、首先确认工作进程(worker process)的用户:
    检查配置文件nginx.conf的user指令
    user www-data;
    后者执行命令

    ps aux | grep "nginx: worker process" | awk '{print $1}'

    www-data
    都可以得到nginx工作进程的运行用户

    2、检查nginx的proxy_temp目录的所有者,
    drwx------ 2 root root 4096 Mar 3 03:28 proxy_temp
    可以看到proxy_temp的所有者不是www-data,修改目录所有者为www-data即可。
    chown -R www-data:www-data proxy_temp

    通过以上的步骤,wordpress就可以正常的显示,不会出现后台的js错误了。
    分析下failed (13: Permission denied) while reading upstream问题的原因
    首先看一下nginx 反向代理参数说明

    proxy_connect_timeout 600; #nginx跟后端服务器连接超时时间(代理连接超时)
    proxy_read_timeout 600; #连接成功后,后端服务器响应时间(代理接收超时)
    proxy_send_timeout 600; #后端服务器数据回传时间(代理发送超时)
    proxy_buffer_size 32k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
    proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
    proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)
    proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传
    

    问题就出在proxy_temp_file_write_size上,当你的文件超过该参数设置的大小时,nginx会先将文件写入临时目录(缺省为nginx安装目下/proxy_temp目录),
    ** 如果nginx对prxoy_temp没有权限就会写不进去,结果就是只显示部分页面。**
    我遇到这个案例用工具查看了一下,post-new.php这个页面大小事94,超过了64k就要符合我们上面的分析。


    wordpress 编辑器错误

    参考链接

    http://www.nginx.cn/695.html

    相关文章

      网友评论

          本文标题:nginx 出现 13: Permission denied

          本文链接:https://www.haomeiwen.com/subject/dujghxtx.html