`
aiya_aiya
  • 浏览: 6330 次
社区版块
存档分类
最新评论

nginx安装在root用户下的问题

阅读更多
我一个同事把nginx安装在root用户下了,结果导致我用IP访问正常,域名访问会出现数据不全的问题,还有一个现象是上传图片二进制流也会报这个错误,在网上查了好久终于查到原因了:
具体来说,是nginx工作机制的问题, 如果报下面的错误:

*105761 open() "/root/server/nginx/fastcgi_temp/3/02/0000000023" failed (13: Permission denied) while reading upstream, client: 172.20.146.204, server: localhost, request: "GET /admin/category/list?nav=3 HTTP/1.0", upstream: "
看起来是权限问题,要完全的解决这个问题,先要搞清楚 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 的作用就在于此。多出来的数据会被临时写入到文件中,放在这个目录下面。
显然,缓冲区设置的太小的话,Nginx 会频繁读写硬盘,对性能有很大的影响,但也不是越大越好,没意义,呵呵!

网上给的解决办法是:粗暴的删掉 fastcgi_temp 目录或者温柔的 chown + chmod 都可以解决问题
,但是我都试过了,都不行,最后才发现是我nginx启动的问题
首先停止nginx,如
sbin/nginx -s stop
给nginx root启动
chown -R root nginx
重新启动nginx,就可以了
这个只是对于安装在root用户下的,安装在其它用户目录下的,也要用相应的用户启动

分享到:
评论

相关推荐

    centos 非root安装nginx

    非root下,离线安装nginx依赖加nginx安装包,需要先装gcc-c++

    非root安装nginx.docx

    整理完成的资料,详细介绍非root用户安装nginx,方便大家下载使用

    nginx 网站放在c://www//root

    Nginx (engine x) 是一个高性能的HTTP和反向...其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

    nginx离线版安装文档.zip

    使用非root用户 nginx离线安装,里面包含有GCC++资源、openssl资源、pcre资源,该资源经过现场安装部署实战

    nginx-1.12.2离线安装包

    nginx普通用户安装手册,内含安装nginx 的其他相关软件,默认本机要有gcc工具,否则需要root 权限安装。内含nginx配置文件,已实现动态替换响应内容,百度搜索反向代理,负载均衡配置。

    nginxnginx离线安装包

    用root用户安装,采用源代码编译的方式来进行安装,首先下载nginx安装要用到的所有文件 nginx-1.14.0.tar.gz openssl-1.1.0h.tar.gz pcre-8.42.tar.gz zlib-1.2.11.tar.gz

    Linux+Nginx+MySQL+PHP一体化安装脚本

    同时提供一些实用的辅助工具如:虚拟主机管理、FTP用户管理、Nginx、MySQL/MariaDB、PHP的升级、常用缓存组件的安装、重置MySQL root密码、502自动重启、日志切割、SSH防护DenyHosts/Fail2Ban、备份等许多实用脚本。

    Nginx安装包及PCRE安装包及操作步骤

    解决安装Nginx安装时报错依赖Pcre的问题,附安装Pcre的步骤及安装包,并解决非root用户安装的问题

    Nginx+ftp搭建图片服务器

    1.#切换root管理员用户  2.[root@localhost ~]# su  3.password  4.#设置本机IP并立即生效  5.[root@localhost ~]# ifconfig eth0 192.168.1.110 netmask 255.255.255.0  1.1、nginx安装环境 ............

    linux下 nginx监控问题

    1、root用户登录 2、查看nginx安装信息:yum info nginx 3、如果找不到nginx信息,则执行如下: rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm 4、再查看...

    nginx(1-9-8).syno.tar官方镜像

    以非root用户身份运行nginx 可以将映像作为特权较低的任意UID / GID运行。但是,这需要修改nginx配置,以使用该特定UID / GID对可写的目录: $ docker run -d -v $PWD/nginx.conf:/etc/nginx/nginx.conf nginx ...

    Nginx Linux安装部署详细教程

    Linux系统是Centos 6.5 64位,我直接切换到root用户下安装 进入用户目录下载程序 下载相关组件 [root@localhost src]# wget http://nginx.org/download/nginx-1.10.2.tar.gz 省略安装内容... [root@localhost src...

    nginx 1.9 window 版本

    #运行用户 user www-data; #启动进程,通常设置成和cpu的数量相等 worker_processes 1; #全局错误日志及PID文件 error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; #工作模式及连接数上限 events { ...

    Ubuntu Debian(NGINX/PHP/MYSQL)快速配置工具LNMP云安装

    Debian6系统下使用之前发布的“DebianLNMP”服务器软件套件,DebianLNMP一键安装包是一个快捷的服务器套件,轻轻松松全自动安装LNMP(Nginx、MySQL、PHP、phpMyAdmin)可直接用再生产环境。现在我们已经在Debian/...

    CentOS7系统下用YUM安装Nginx详解

    教程中的步骤需要root用户权限。 一、添加Nginx到YUM源 添加CentOS 7 Nginx yum资源库,打开终端,使用以下命令: sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.

    phpStudy 最新 Apache+Nginx+LightTPD+PHP+MySQL+phpMyAdmin+Zend 稳定 强大

    5、自带FTP服务器,支持多用户,无需再安装FTP服务器。自带网站挂马监视器,随时记录文件的修改情况,让挂马文件无处可逃。 6、本程序完美支持II7,IIS8和IIS6。应网友的要求制作Nginx版和Lighttpd版。Nginx版为...

    nginx 让users有权限启动的两种方法

    nginx 让users有权限启动两种方法 普通用户在restart和reload ...原因是:默认情况下Linux的1024以下端口是只有root用户才有权限占用 方法一: 所有用户都可以运行(因为是755权限,文件所有者:root,组所有者:root)

    详解nginx静态资源服务器简单配置

    传统的web项目,一般都将静态资源存放在 webroot的目录下,这样做很方便获取静态资源,但是如果说web项目很大,用户很多,静态资源也很多时,服务器的性能 或许就会很低下了。这种情况下一般都会需要一个静态资源的...

    php + nginx项目中的权限详解

    如:启动nginx的是root,nginx中配置的user是nginx,那主进程就是root,子进程就是nginx 处理方式 以下访问均以nginx子进程进行 静态文件 步骤:nginx访问/index.html时,nginx会直接访问对应文件,并将内容返回给...

    docker-nginx-unprivileged:无特权的NGINX Dockerfiles

    该Dockerfile创建一个NGINX Docker映像,该映像以非root用户,非特权用户身份运行NGINX。 关于官方NGINX Docker映像的显着差异包括: 现在,默认的NGINX监听端口是8080而不是80 。 在默认的用户NGINX指令/etc/...

Global site tag (gtag.js) - Google Analytics