CentOS 下安装 nginx
国内CentOS用的比较多,大部份都是在CentOS下安装。
使用的 nginx 版本nginx-1.15.10.tar.gz
官网上有三种版本:Mainline version、Stable version、Legacy versions 网上推荐用 Stable 稳定版
安装依赖
前提是已安装了主要三个依赖包: pcre、openssl、zlib
如果没有安装,使用下面的命令装一遍
代码语言:javascript复制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 加不加前缀都在这个目录下
代码语言:javascript复制wget http://nginx.org/download/nginx-1.15.10.tar.gz
tar -zxvf nginx-1.15.10.tar.gz
cd nginx-1.15.10/
./configure
make & make install
执行 ./configure
后已经有提示路径了:
你也可以在预编译阶段直接指定用户、安装目录等
代码语言:javascript复制./configure
-user=www #添加一个用户
-group=www #添加一个用户组
-prefix=/usr/local/nginx #文件生成目录
--with-http_ssl_model #添加 ssl 模块
安装成功后主目录:
/usr/local/nginx/
如果不知道目录在哪里,可以通过whereis
命令来定位nginx
命令所以位置,也就是nginx
的安装目录。
添加 nginx 用户
添加这个用户主要是用应用账户隔离,每一个应用通过用户来控制它的权限,这样也是为了安全考虑。
代码语言:javascript复制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
代码语言:javascript复制/usr/local/nginx/sbin/nginx
或者下面这个命令,效果一样,看个人习惯。
代码语言:javascript复制cd /usr/local/nginx/sbin
./nginx
指定配置文件启动,参数: -c
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
测试启动,参数:-t
测试
如果测试问题会报错
/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
进程验证
启动后,怎么看成功没成功,直接访问一下?生成环境下很多是没有开外网访问的。直接访问肯定不行。 内网访问?云主机的内网浏览器访问不到。
1.直接查进程
代码语言:javascript复制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
状态。
netstat -na | grep 80
代码语言:javascript复制tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
netstat -ntlp
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 17014/nginx
查看日志,也果没有 ERROR 就是启动成功了
代码语言:javascript复制tail logs/error.log
重启
参数:-s
-s 代表向主线程发送信号,有4种信号:stop、quit、reopen、reload 这个参数也做到平滑重启,如果当前有用户连接,不断开用户连接。会再开线程处理
代码语言:javascript复制/usr/local/nginx/sbin/nginx -s reload -c /usr/local/nginx/conf/nginx.conf
或
代码语言:javascript复制/usr/local/nginx/sbin/nginx -s reload
停止
web服务器,不是web服务,基本上不需要持久化,直接杀死线程就可以。
代码语言:javascript复制ps -ef | grep nginx
从容停止 kill -QUIT 主进程号 快速停止 kill -TERM 主进程号 强制停止 kill -9 nginx
不知道区别在哪