这是我参与8月更文挑战的第13天,活动详情查看:8月更文挑战
==更推荐使用yum安装,yum安装方便简单省心,源码编译安装过程稍复杂==
安装步骤
从官网下载tar.gz包 (用wget更方便些,但是我正好本地有这个包所以直接用了)
使用ftp上传到/opt
下 (一般非编译安装的软件都放到这个目录)
解压
tar -zxvf nginx-1.16.1.tar.gz
复制代码
安装依赖包
- Nginx依赖于GCC编译环境:
yum install gcc
- Nginx的http模块需要使用pcre来解析正则表达式:
yum install -y pcre-devel
- 安装依赖的解压包:
yum install -y zlib zlib-devel
- ssl 功能需要 openssl 库,安装 openssl:
yum install -y openssl openssl-devel
- 一键安装上面四个依赖
yum -y install gcc pcre-devel zlib zlib-devel openssl openssl-devel 复制代码
切换目录
cd nginx-1.16.1
复制代码
执行配置
./configure
# 如果不想默认安装在/usr/local/nginx,可以配置自己的路径
./configure --prefix=/xxxxxxxxxx/nginx
复制代码
编译安装(默认安装在/usr/local/nginx)
make && make install
复制代码
安装成功
常用指令
先进入到nginx的安装位置的sbin目录下:cd /usr/local/nginx/sbin
测试配置文件:./nginx -t
启动:./nginx
停止:./nginx -s stop
重启服务:./nginx -s reload
查看进程:ps -ef | grep nginx
平滑重启:kill -HUP [Nginx主进程号(即ps命令查到的PID)]
如果在想在其它目录下直接执行以上命令,可以用以下任意方法
- 带上路径,比如启动:
/usr/local/nginx/sbin/nginx
- 把nginx添加到环境变量,就可以从任意目录直接执行nginx指令,如启动:
nginx
- 或者把nginx注册到服务,就可以用系统服务工具来管理nginx。下边会说怎么注册
拓1:把Nginx注册为服务
注册为系统服务,可以用systemctl(centos7以下是service+chkconfig)来管理程序
比如设置开机自启等 (不过如果单纯为了开机自启的话,实现方式不止可以通过注册服务,也可以通过设置开机自动执行命令/usr/local/nginx/sbin/nginx
的方式实现)
将程序注册为系统服务,最直观的感受是避免了每个程序的启动重启等指令不一而记忆混乱。
CentOS7采用systemd代替了传统的service+chkconfig方式来管理服务,systemd为系统的启动和管理提供了一套完整的解决方案。可参考阮一峰systemd讲解
步骤一 脚本
需要nginx服务脚本,官方脚本链接
注意路径:检查脚本中出现的路径,要改成自己安装的路径:默认路径nginx是/usr/local/nginx/sbin/nginx
,conf是/usr/local/nginx/conf/nginx.conf
下载systemd脚本,修改为默认路径后,内容如下
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID # 这行也可以用这个代替 ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
复制代码
pid文件的路径可把我好找...最后在conf文件里找到了。默认是/usr/local/nginx/logs/nginx.pid
拓:一般程序的pid文件都是在
var/run -> /run
下,而且程序运行时生成,程序停止后消失
步骤二 启动 & 设置自启
最后执行systemctl status nginx
,大功告成
可设置开机自启:
systemctl enable nginx
拓2:添加环境变量
vim /etc/profile
,添加export PATH=$PATH:/usr/local/nginx/sbin
执行
source /etc/profile
让修改后的配置信息立即生效、nginx -v
成功输出,配置成功!