Nginx降权启动

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

Nginx服务降权,用lol用户跑Nginx,给开发及运维设置普通账号,只要和lol同组即可管理Nginx,方案解决了Nginx管理问题,防止root分配权限过大。

开发人员使用普通账户即可管理Nginx站点以下程序问题。采取项目负责制制度,谁负责项目维护了问题谁负责。

 

1. 更改nginx默认用户及用户组(worker进程优化)

a.建立nginx用户
[root@mysql-db01 conf]#  useradd www -s /sbin/nologin -'nginx'-=497(nginx) gid=498(nginx) groups=498-db01 conf]#

2.配置nginx.conf使用nginx用户

user  www www;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;
.........

也可以编译的时候指定用户.

[root@mysql-db01 conf]# /application/nginx/sbin/nginx -V
nginx version: nginx/1.10.2built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) 
built with OpenSSL 1.0.1e-fips 11 Feb 2013TLS SNI support enabled
configure arguments: --prefix=/application/nginx-1.10.2 --user=www --group=www --with-http_stub_status_module --with-http_ssl_module

 

3.  让nginx运行于监牢模式

 这种方式简单来说就是为master服务降权:使用非root跑nginx master

注意:不能用80特权端口,前端nginx反向代理转端口在启动的时候指定配置文件,普通用户只能只用1024以上的端口。

[root@web01 ~]# useradd lol   ##创建普通用户
[root@web01 ~]# ll -ld /home/lol/drwx------ 2 inca inca 4096 Jul 31 18:19 /home/inca/[root@web01 ~]# 
[root@web01 ~]# su - lol    ##切换到普通用户下来进行下步操作

之所以要进入到普通用户下操作,是让普通用户对自己所创建的文件具有所有权

[inca@web01 ~]$ pwd/home/inca
[inca@web01 ~]$ mkdir conf  logs  www   ##创建必须的配置文件,日志,站点目录
[inca@web01 ~]$ cp /application/nginx/conf/mime.types ~/conf/    #拷贝配置文件中网页支持类型文件[inca@web01 ~]$ echo inca >www/index.html

拷贝原有配置文件nginx.conf并修改目录。

[inca@www ~]$ cat conf/nginx.conf 
worker_processes  4;
worker_cpu_affinity 0001 0010 0100 1000;
worker_rlimit_nofile 65535;
error_log  /home/lol/logs/error.log;
user www www;     
pid        /home/lol/logs/nginx.pid;
events {
    use epoll;
    worker_connections  10240;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';


    #web.fei fa dadong..............
    server {
        listen       8080;
        server_name  www.dadong.org 

;
        root   /home/lol/www;
        location / {
            index  index.php index.html index.htm;
                }
         access_log  /home/lol/logs/web_blog_access.log  main;
           }
}

 使用指定配置文件的方式启动nginx

[lol@web01 conf]$ -db01 conf]$ ps -ef |38719      1  0 23:15 ?        00:00:00 nginx: master process /data/nginx/sbin/nginx -c /home/lol/conf/38720  38719  0 23:15 ?        00:00:0038721  38719  0 23:15 ?        00:00:0038722  38719  0 23:15 ?        00:00:0038723  38719  0 23:15 ?        00:00:0038725  38685  0 23:15 pts/1    00:00:00 grep nginx

[lol@mysql-db01 conf]$ curl -I 10.0.0.51:8080
HTTP/1.1 200 OK
Server: nginx/1.10.2
Date: Mon, 06 Nov 2017 15:34:21 GMT
Content-Type: text/html
Content-Length: 5
Last-Modified: Mon, 06 Nov 2017 15:11:58 GMT
Connection: keep-alive
ETag: "5a007bbe-5"
Accept-Ranges: bytes

[lol@mysql-db01 conf]$ curl 10.0.0.51:8080
inca
[lol@mysql-db01 conf]$

报错的话说明 权限不对,把root的logs目录添加普通用户的权限 然后再启动 如果root的nginx  logs目录里有pid文件删掉











本文转自 蓝叶子Sheep 51CTO博客,原文链接:http://blog.51cto.com/dellinger/1981295,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
应用服务中间件 网络安全 nginx
nginx启动成功,但外部不能访问的问题
nginx启动成功,但外部不能访问的问题
2868 0
nginx启动成功,但外部不能访问的问题
|
应用服务中间件 Linux 开发工具
CentOS7下启动Nginx出现Failed to start nginx.service:unit not found
CentOS7下启动Nginx出现Failed to start nginx.service:unit not found
3006 0
CentOS7下启动Nginx出现Failed to start nginx.service:unit not found
|
应用服务中间件 nginx Windows
Windows PowerShell 中启动 Nginx 报错解决方案
Windows PowerShell 中启动 Nginx 报错解决方案
Windows PowerShell 中启动 Nginx 报错解决方案
|
关系型数据库 MySQL 应用服务中间件
nginx启动、重启、关闭
nginx启动、重启、关闭
1236 0
nginx启动、重启、关闭
|
应用服务中间件 nginx Docker
docker中nginx的默认路径位置和映射目录启动
docker中nginx的默认路径位置和映射目录启动
1260 0
docker中nginx的默认路径位置和映射目录启动
|
应用服务中间件 Linux nginx
【Linux系列】Linux启动nginx
1,首先找到nginx的安装目录 which nginx 会找到对应的目录,如图 2,查看进程是否存在 ps -ef|grep nginx 3,杀死进程 kill -QUIT 1282 强制停止 kill -9 1282 4,进入到nginx 的sbin 目录,启动nginx cd /usr/local/nginx/sbin/ ./nginx ./nginx -s stop ./nginx -s quit ./nginx -s reload 4,但是上面这个..
115 0
【Linux系列】Linux启动nginx
|
应用服务中间件 Linux 开发工具
05_Linux基础-NGINX编译安装^判断是否启动^修改端口^启动停止重启^相关路径^中文乱码-Windows、Linux文件传输
NGINX编译安装^判断是否启动^修改端口^启动停止重启^相关路径^中文乱码-Windows、Linux文件传输
136 0
05_Linux基础-NGINX编译安装^判断是否启动^修改端口^启动停止重启^相关路径^中文乱码-Windows、Linux文件传输
|
应用服务中间件 nginx
运行sudo service nginx restart,报错* Restarting nginx nginx[fail],启动不了nginx,启动nginx报错
运行sudo service nginx restart,报错* Restarting nginx nginx[fail],启动不了nginx,启动nginx报错
292 0
|
应用服务中间件 nginx
解决启动nginx的nginx.pid错误
启动Nginx报错: nginx: [error] open() “/usr/local/nginx/logs/nginx.pid” failed (2: No such file or directory) [root@VM_16_6_centos sbin]# .
1344 0
|
应用服务中间件 Linux nginx
centos下nginx启动、重启、关闭
学习linux使用nginx笔记
71639 0