安装所需环境
Nginx 是 C语言 开发,建议在 Linux 上运行,当然,也可以安装 Windows 版本,本篇则使用 CentOS 7 作为安装环境。
一. gcc 安装
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:
1 | yum install gcc-c++ |
二. PCRE pcre-devel 安装
PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:
1 | yum install -y pcre pcre-devel |
三. zlib 安装
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。
1 | yum install -y zlib zlib-devel |
四. OpenSSL 安装
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。
1 | yum install -y openssl openssl-devel |
所有工具和依赖一起安装
1 | yum install -y openssl openssl-devel zlib zlib-devel pcre pcre-devel gcc-c++ |
官网下载
直接下载
.tar.gz
安装包,地址:https://nginx.org/en/download.html使用
wget
命令下载(推荐)。确保系统已经安装了wget,如果没有安装,执行 yum install wget 安装。
1 | wget -c https://nginx.org/download/nginx-1.15.12.tar.gz |
我下载的是1.12.0版本,这个是目前的稳定版。
解压
依然是直接命令:
1 | tar -zxvf nginx-1.15.12.tar.gz |
配置
其实在 nginx-1.15.12 版本中你就不需要去配置相关东西,默认就可以了。当然,如果你要自己配置目录也是可以的。
- 使用默认配置
1 | ./configure |
- 自定义配置(不推荐)
1 | ./configure \ |
注:将临时文件目录指定为
/var/temp/nginx
,需要在/var下创建temp及nginx目录
编译安装
1 | make |
查找安装路径:
1 | whereis nginx |
启动、停止nginx
1 | cd /usr/local/nginx/sbin/ |
解决办法,查看占用端口的进程
1 |
|
./nginx -s quit
:此方式停止步骤是待nginx进程处理任务完毕进行停止。./nginx -s stop
:此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。
查询nginx进程:
1 | ps aux|grep nginx |
重启 nginx
1.先停止再启动(推荐):
对 nginx 进行重启相当于先停止再启动,即先执行停止命令再执行启动命令。如下:
1 | ./nginx -s quit |
2.重新加载配置文件:
当 ngin x的配置文件 nginx.conf 修改后,要想让配置生效需要重启 nginx,使用-s reload
不用先停止 ngin x再启动 nginx 即可将配置信息在 nginx 中生效,如下:
1 | ./nginx -s reload |
启动成功后,在浏览器可以打开页面了
开机自启动
即在rc.local
增加启动代码就可以了。
1 | vi /etc/rc.local |
增加一行 /usr/local/nginx/sbin/nginx
设置执行权限:
1 | chmod 755 rc.local |
到这里,nginx就安装完毕了,启动、停止、重启操作也都完成了,当然,你也可以添加为系统服务。
添加系统服务
Centos 6 添加系统服务
nginx源码安装完成后默认不会注册为系统服务,所以需要手工添加系统服务脚本。在/etc/init.d目录下新建nginx文件,并更改权限其即可。
新建nginx文件
1 | vim /etc/init.d/nginx |
填写以下内容(根据自己的实际目录修改):
1 | !/bin/bash |
或https://github.com/xinyflove/MyDocument/blob/master/Nginx/nginx
tip:
根据自己实际安装目录,修改这两行:
1 | nginxd=/usr/local/nginx/sbin/nginx |
修改文件权限
1 | chmod 755 /etc/init.d/nginx |
设置开机启动
1 | chkconfig nginx on |
查看开机启动的服务
1 | chkconfig --list |
命令
启动服务:service nginx start
停止服务:service nginx stop
重启服务:service nginx reload
CentOS 7 添加系统服务
新建 nginx.server文件
1 | vi /usr/lib/systemd/system/nginx.service |
填写以下内容
1 | #nginx服务配置到该文件中 |
启动nginx服务
1 | systemctl start nginx.service |
设置开机自启动
1 | systemctl enable nginx.service |
停止开机自启动
1 | systemctl disable nginx.service |
查看服务当前状态
1 | systemctl status nginx.service |
重新启动服务
1 | systemctl restart nginx.service |
查看所有已启动的服务
1 | systemctl list-units --type=service |
如下出现Failed to execute operation: Access denied
无权限错误,则需关闭selinux
,操作如下:
1 | vi /etc/sysconfig/selinux |
新旧系统服务命令对比
任务 | 旧指令 | 新指令 |
---|---|---|
使某服务自动启动 | chkconfig –level 3 nignx on | systemctl enable nignx.service |
使某服务不自动启动 | chkconfig –level 3 nignx off | systemctl disable nignx.service |
检查服务状态 | service nignx status | systemctl status nignx.service (服务详细信息) systemctl is-active nignx.service (仅显示是否 Active) |
显示所有已启动的服务 | chkconfig –list | systemctl list-units –type=service |
启动某服务 | service nignx start | systemctl start nignx.service |
停止某服务 | service nignx stop | systemctl stop nignx.service |
重启某服务 | service nignx restart | systemctl restart nignx.service |