操作系统发行版本:openEuler release 20.03 (LTS-SP2)
项目中大量用到Nginx,所以乘着值夜班的时间搭个Nginx测试环境,用于以后项目中Nginx配置验证。以前搭Nginx时都是用root账号,为了更贴近于生产环境这次也用非root权限进行安装启动。
首要保证nginx必要和常用组件已经安装,安装命令如下:
dnf install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
===============使用root操作=============== 新建一个用户nku,命令如下:
useradd -m -d /home/nku nku
passwd为账号配置密码。
===============使用nku操作===============
首先解压nginx源码包,命令就不写了,大家都应该知道。在nku家目录下新建目录nginx用于后期安装nginx。然后进入解包后的目录,这里先不要着急configure。我们需要自定义一些东西,所以./configure需要加入参数,参数可根据自身需要进行添加。
./configure \
--prefix=/home/nku/nginx \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/home/nku/nginx/logs/error.log \
--http-log-path=/home/nku/nginx/logs/access.log \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-file-aio \
--with-http_realip_module \
--with-stream
其中我修改了nginx默认安装目录,以及日志保存路径等,还加入了ssl模块等参数。等待配置完成。执行make开始编译,无错通过编译后,执行make install开始安装,无错通过后表示安装完成。
进入/home/nku/nginx/sbin目录,执行./nginx启动nginx服务。此时会提示13没有权限的错误,如下图:
执行./nginx -t测试也会报13没有权限错误,如下图:
导致这个问题的原因在于nginx监听端口号如果小于1024,则必须用root启动,而默认的nginx监听端口为80。修改nginx.conf中的监听端口号大于1024后,再次执行./nginx即可启动服务。
额外话:关于停止nginx服务
如果查看nginx -help的时候可以发现 -s下有stop和quit两个参数都能用于停止nginx。区别在于stop是直接停掉服务,类似于直接kill进程;而quit则是关闭监听,同时等待当前的链接全部退出后再关闭进程。建议使用quit而不是stop,stop容易引发一些问题。