Linux普通账户使用和管理Nginx

说明

由于项目需要,客户要求使用系统上存在的普通账户使用和管理nginx,下面是主要的配置步骤~

创建账户

useradd duser

Nginx编译安装

#下载并解压缩nginx包
tar zxvf nginx-1.12.2.tar.gz
cd nginx-1.12.2
#编译安装
./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt=‘-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC‘ --with-ld-opt=‘-Wl,-z,relro -Wl,-z,now -pie‘ --add-module=/tmp/echo-nginx-module

make

make install

说明??:其中,如不需要echo模块,将最后一个选项去掉,如需要echo模块,从github上面拉到指定位置

配置 nginx.conf 文件

cd /etc/nginx/
cp nginx.conf nginx.conf_bak
#cat nginx.conf
user  duser  duser;

#Single core
worker_processes  2;

#Multicore
#worker_processes     8;
#worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
    worker_connections  10240;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
                      ‘$status $body_bytes_sent "$http_referer" ‘
                      ‘"$http_user_agent" "$http_x_forwarded_for" "$http_host"‘
                      ‘$request_time $upstream_response_time $pipe - $upstream_addr‘;

    log_format  post_format $request_body;

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  120;
    proxy_connect_timeout 600;
    proxy_send_timeout 600s;
    proxy_read_timeout 600s;

    #gzip  on;

    include /etc/nginx/http.d/*.conf;
}

stream {
    log_format proxy ‘$remote_addr [$time_local] ‘
                     ‘$protocol $status $bytes_sent $bytes_received ‘
                     ‘$session_time "$upstream_addr" ‘
                     ‘"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"‘;
    access_log /var/log/nginx/stream.access.log proxy;

    include /etc/nginx/stream.d/*.conf;
}
#创建更改http,tcp服务目录和权限
mkdir /etc/nginx/http.d
mkdir /etc/nginx/stream.d
chmod 777 /etc/nginx/http.d
chmod 777 /etc/nginx/stream.d

修改 nginx 使用权限

chmod u+s /usr/sbin/nginx

测试

#启动nginx
nginx
#查看nginx服务
ps -ef |grep nginx
root     22828     1  0 14:17 ?        00:00:00 nginx: master process nginx
duser    23062 22828  0 14:50 ?        00:00:00 nginx: worker process
duser    23063 22828  0 14:50 ?        00:00:00 nginx: worker process
duser    23064 22828  0 14:50 ?        00:00:00 nginx: worker process
duser    23065 22828  0 14:50 ?        00:00:00 nginx: worker process
root     23396 23364  0 16:20 pts/2    00:00:00 grep --color=auto nginx
#先切到duser账户下
su - duser
#自定义一个http服务
cat /etc/nginx/http.d/test.conf
server {
        listen       8080;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
}
#平滑重启nginx
nginx -t
nginx -s reload

参考文档

Linux 普通用户启动nginx

相关推荐