zoukankan      html  css  js  c++  java
  • 非root用户启动nginx

    非root用户启动nginx

    背景:

    公司服务器申请root权限一般会比较麻烦。所以希望能以公共账号(普通用户)来启动nginx,方便后续运维。

    nginx启动进程可以在/etc/nginx/nginx.conf中,指定user (user www-data), 但是这个只有在root用户启动的情况才有意义,启动之后,master process还是root用户的,并不能满足我们的需求 。

    我们需要能用非root用户启动nginx master process

    做法如下:
    1. 注释掉/etc/nginx/nginx.conf的:user www-data 这行
    2. 此时用普通用户执行 /usr/sbin/nginx -t测试配置,报如下错误nginx: [emerg] open() "/var/run/nginx.pid" failed (13: Permission denied)
    3. 直接在/etc/nginx/目录下, 执行mkdir pid新建目录,修改/etc/nginx/nginx.conf的: pid /run/nginx/nginx.pidpid /etc/nginx/pid/nginx.pid
    4. 修改相关文件夹/etc/nginx /var/log/nginx的权限。 如执行:chown -R user:usergroup /etc/nginx

    此时,执行nginx -t测试配置没问题,即可正常以普通用户启动nginx了

    后续

    运行一天后,发现部分有些页面的数据不能正常加载,排查发现response中返回的json被截断了
    进一步排查,发现nginx错误日志中显示: open() "/var/lib/nginx/proxy/8/04/0000000048" failed (13: Permission denied)

    解决:执行chown -R user:usergroup /var/lib/nginx 修改/var/lib/nginx/文件夹的权限。同时为稳妥起见,将whereis nginx显示的文件夹全改成普通用户了

  • 相关阅读:
    [Axiom 3D]1.初识Axiom
    [.Net]System.OutOfMemoryException异常
    一个恶心的需求
    度分秒的正则表达式
    CSLA.Net学习(3)INotifyPropertyChanged和IDataErrorInfo
    [转载]高斯正反算
    分带?不分带?
    chm帮助文档制作及C#调用
    OleDb未指定错误
    [学习笔记]工厂方法用于数据库开发
  • 原文地址:https://www.cnblogs.com/wchaos/p/14513025.html
Copyright © 2011-2022 走看看