Nginx (engine x) 是一个高性能、轻量级的HTTP和反向代理web服务器,其特点是占有内存少,并发能力强。
环境准备
gcc
gcc是linux下的编译器,可以编译 C,C++,Ada,Object C和Java等语言,一般阿里云centos7环境自带安装。
yum -y install gccpcre、pcre-devel安装
pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式.
yum install -y pcre pcre-develgzip
zlib库提供了很多种压缩和解压缩方式,nginx允许使用zlib对http包的内容进行gzip,避免资源过大加载过慢
yum install -y zlib zlib-developenssl
openssl是web安全通信的基石,需要安装
yum install -y openssl openssl-devel编译安装
安装有直接yum安装和源码编译安装两种,个人更喜欢源码编译安装,以下为源码编译安装的步骤
安装
Ngnix默认安装在/usr/local下,新建并切换至nginx目录
mkdir /usr/local/nginx && cd /usr/local/nginx前往官网获取安装包下载路径:http://nginx.org/download/
以nginx-1.21.3.tar.gz为例,获取安装包
wget http://nginx.org/download/nginx-1.21.3.tar.gz解压
tar -zxvf nginx-1.21.3.tar.gz编译
进入解压后的文件夹
cd nginx-1.21.3编译源码文件时,通过configure命令进行配置,若不添加参数,直接输入如下命令即可编译成功
./configure如果需要配置时添加其他模块,需要在后面跟上相关配置,如配置https所必须的http_ssl_module模块
./configure --with-http_ssl_module配置相关参数和模块可参考:http://www.weixueyuan.net/a/604.html
编译后执行安装命令,默认在/usr/local/创建nginx文件夹并安装到此位置
makemake install这里因为我已经事先创建了nginx文件夹并处于/usr/local/nginx/nginx-1.21.3,所以nginx自动被安装到了上一层目录内,回到上一层目录
cd ..配置环境变量
nginx的执行文件位于/usr/local/ngnix/sbin,里面只有一个nginx,很好确认,为了方便操作我需要将他加入环境变量
新增nginx环境变量文件
vim /etc/profile.d/nginx.sh配置文件内容
export PATH=$PATH:/usr/local/nginx/sbin重启服务器生效
nginx常用相关参数
nginx -s reload # 重新加载配置文件后,重启nginxnginx -s reopen # 强制重启nginxnginx -s quit # 处理完所有任务后,停止nginxnginx -s stop # 强制停止nginxnginx -t # 检测配置文件正确性nginx -c filename #为nginx指定配置文件nginx -v # 查看nginx版本信息nginx -V # 查看nginx版本信息及配置模块信息错误踩坑及处理
nginx: [error] open() “/usr/local/nginx/logs/nginx.pid” failed (2: No such file or directory)
需要指定配置文件位置
nginx -c /usr/local/nginx/conf/nginx.conf执行后再次执行nginx -s reload即可
注册为系统服务并开机自启动
为了方便nginx应用进程的维护和管理,这里将其注册为系统服务,由systemd进行服务管理
新建nginx服务配置文件
vim /usr/lib/systemd/system/nginx.service设置如下配置内容(记得删掉#后的注释)
[Unit]Description = The Nginx HTTP and reverse proxy serverAfter = network.target remote-fs.target nss-lookup.target
[Service]Type = forking# Nginx服务的pid文件位置PIDFile = /run/nginx.pid# Nginx服务启动前删除旧的pid文件ExecStartPre = /usr/bin/rm -f /run/nginx.pid# Nginx服务启动前执行配置文件检测ExecStartPre = /usr/local/nginx/sbin/nginx -t -qExecStart = /usr/local/nginx/sbin/nginx -g "pid /run/nginx.pid ;"ExecReload = /usr/local/nginx/sbin/nginx -t -qExecReload = /usr/local/nginx/sbin/nginx -s reload -g "pid /run/nginx.pid ;"
ExecStop = /bin/kill -s HUP $MAINPIDKillSignal = SIGQUITTimeoutStopSec = 5KillMode = processPrivateTmp = true
[Install]WantedBy = multi-user.target详细配置文件内容参考另一篇文章centos系统服务相关
配置结束后执行下面命令就ok
# 注册为开机自启动服务systemctl enable nginx# 启动服务systemctl start nginx错误踩坑及处理
错误信息:[error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"
前往错误提示文件,发现为空文件
vim /usr/local/nginx/logs/nginx.pid查看nginx运行的pid
ps -ef |grep nginx
将获取的pid写入nginx.pid文件
echo 18628 > /usr/local/nginx/logs/nginx.pid重新加载nginx
nginx -s reload参考
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时