在有些环境中,我们没有 root 权限,但是还需要使用 nginx。
使用 root 用户,可以非常简单的安装 nginx,使用普通用户时,这会非常复杂,操作步骤变得更多,而且 nginx 启动后监听的端口也只能大于 1024。
阅读本文,可以学习如何使用普通用户安装 nginx。
环境
操作系统:RHEL 7.5 x86_64
用户:appuser
获取 nginx
直接使用 nginx 官方提供的 rpm 包即可。
cd ~
mkdir nginx
cd nginx
wget http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.16.1-1.el7.ngx.x86_64.rpm
解压 rpm 包,只下下面指令后,会解压出 etc\usr\var
3 个目录。
cd ~/nginx/
rpm2cpio nginx-1.16.1-1.el7.ngx.x86_64.rpm | cpio -div
创建必备目录
mkdir -p /home/appuser/nginx/var/run
变更配置文件
编辑这个文件:/home/appuser/nginx/etc/nginx/nginx.conf
,将涉及目录的部分全部添加前缀 /home/appuser/nginx
,并且指定临时目录,下面是编辑好的配置文件。
user appuser;
worker_processes auto;
error_log /home/appuser/nginx/var/log/nginx/error.log warn;
pid /home/appuser/nginx/var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /home/appuser/nginx/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"';
access_log /home/appuser/nginx/var/log/nginx/access.log main;
# 此处为额外添加
client_body_temp_path /home/appuser/nginx/var/cache/nginx/client_temp;
proxy_temp_path /home/appuser/nginx/var/cache/nginx/proxy_temp;
fastcgi_temp_path /home/appuser/nginx/var/cache/nginx/fastcgi_temp;
uwsgi_temp_path /home/appuser/nginx/var/cache/nginx/uwsgi_temp;
scgi_temp_path /home/appuser/nginx/var/cache/nginx/scgi_temp;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /home/appuser/nginx/etc/nginx/conf.d/*.conf;
}
配置虚拟主机
编辑这个文件:/home/appuser/nginx/etc/nginx/conf.d/default.conf
,将端口从 80 变更为 8080,目录也全部添加前缀。
若有需要,可以添加更多的虚拟主机配置文件(如何配置虚拟主机不在本文讨论范围内)。
操控 nginx
启动:/home/appuser/nginx/usr/sbin/nginx -c /home/appuser/nginx/etc/nginx/nginx.conf
重载配置:/home/appuser/nginx/usr/sbin/nginx -c /home/appuser/nginx/etc/nginx/nginx.conf -s reload
停止:/home/appuser/nginx/usr/sbin/nginx -c /home/appuser/nginx/etc/nginx/nginx.conf -s stop
注意
此时 nginx 已经可以使用普通用户运行了。
nginx 推荐使用 root 启动,它会使用配置文件中指定的普通用户(一般为 nginx 用户)启动子进程。如非必要,不推荐使用本文讲解的方式使用 nginx。
这篇文章还没有人留言,快来抢沙发吧。