nginx 安装、基本使用
CentOS 下安装 nginx
国内CentOS用的比较多,大部份都是在CentOS下安装。
使用的 nginx 版本nginx-1.15.10.tar.gz
官网上有三种版本:Mainline version、Stable version、Legacy versions
网上推荐用 Stable 稳定版
安装依赖
前提是已安装了主要三个依赖包: pcre、openssl、zlib
如果没有安装,使用下面的命令装一遍
1 | yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel |
安装 nginx
先到官网上下选择自己需要的版本
我通常直接在这个页面选择下载 http://nginx.org/download/ ,这上面全是,找一个合适 wget 一下。
./configure --prefix=/usr/local/nginx 加不加前缀都在这个目录下
1 | wget http://nginx.org/download/nginx-1.15.10.tar.gz |
执行 ./configure
后已经有提示路径了:
你也可以在预编译阶段直接指定用户、安装目录等
1 | ./configure |
安装成功后主目录:
/usr/local/nginx/
如果不知道目录在哪里,可以通过whereis
命令来定位nginx
命令所以位置,也就是nginx
的安装目录。
添加 nginx 用户
添加这个用户主要是用应用账户隔离,每一个应用通过用户来控制它的权限,这样也是为了安全考虑。
1 | useradd nginx |
启停服务
niginx 的安装目下有4个目录分别是:
/usr/local/nginx/sbin
/usr/local/nginx/conf
/usr/local/nginx/html
sbin 目录
存放niginx
命令,也是nginx的主要操作命令
启动
启动可以直接使用nginx命令,这种方式使用默认配置文件启动
默认配置文件路径:/usr/local/nginx/conf/nginx.conf
1 | /usr/local/nginx/sbin/nginx |
或者下面这个命令,效果一样,看个人习惯。
1 | cd /usr/local/nginx/sbin |
指定配置文件启动,参数: -c
1 | /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf |
测试启动,参数:-t
测试
如果测试问题会报错
1 | /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf |
进程验证
启动后,怎么看成功没成功,直接访问一下?生成环境下很多是没有开外网访问的。直接访问肯定不行。
内网访问?云主机的内网浏览器访问不到。
1.直接查进程
1 | ps -ef | grep nginx |
结果
root 17014 1 0 18:16 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
root 17162 14260 0 19:22 pts/0 00:00:00 grep nginx
2.查端口
默认使用80端口,直接看下80端口是不是LISTEN
状态。
1 | netstat -na | grep 80 |
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
1 | netstat -ntlp |
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 17014/nginx
查看日志,也果没有 ERROR 就是启动成功了
1 | tail logs/error.log |
重启
参数:-s
-s 代表向主线程发送信号,有4种信号:stop、quit、reopen、reload
这个参数也做到平滑重启,如果当前有用户连接,不断开用户连接。会再开线程处理
1 | /usr/local/nginx/sbin/nginx -s reload -c /usr/local/nginx/conf/nginx.conf |
或
1 | /usr/local/nginx/sbin/nginx -s reload |
停止
web服务器,不是web服务,基本上不需要持久化,直接杀死线程就可以。
1 | ps -ef | grep nginx |
从容停止 kill -QUIT 主进程号
快速停止 kill -TERM 主进程号
强制停止 kill -9 nginx
不知道区别在哪