一、nginx
1. nginx简介
Nginx (engine x) 是一个高性能的http和方向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
2. nginx与apache的不同
(1)Apache处理速度很慢,占用很多内存资源,而nginx是轻量级的软件,占内存资源少
(2)功能上,Apache所有模块支持动静态编译,Nginx模块都是静态编译的,在等待过程中可以处理其他的请求,效率高
(3)处理连接方式:Nginx支持epoll,Apache不支持
(4)功能文档多,方便学习和部署
(5)抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能
二、nginx的安装
1. 准备工作:下载nginx安装包并解压
tar zxf nginx-1.17.1.tar.gz
cd nginx-1.17.1/
vim auto/cc/gcc
# debug
#CFLAGS="$CFLAGS -g" #将debug功能关闭
2. 删除版本信息
#define NGINX_VER "nginx/" #将版本信息删除,注释没有用,在编译时仍会被识别
为了实验效果,这里就不删除版本信息了
3. nginx的编译和安装
因为我们需要对nginx进行编译,所以首先我们要安装gcc编译器用来编译源码
yum install -y gcc openssl-devel
./configure --prefix=/usr/local/nginx --with-file-aio #进行编译
make && make install #安装
4. 利用nginx自带的vim功能进行关键字检测
# vim检验关键字是否写错
mkdir ~/.vim
cp -r contrib/vim/* ~/.vim
5. nginx的相关命令
/usr/local/nginx/sbin/nginx #打开nginx
/usr/local/nginx/sbin/nginx -s reload #重新加载
/usr/local/nginx/sbin/nginx -s reopen #重新打开
/usr/local/nginx/sbin/nginx -s stop #关闭
/usr/local/nginx/sbin/nginx -v #查看版本信息
/usr/local/nginx/sbin/nginx -V #查看编译信息
使用打开命令,开启nginx,在浏览器中输入http://172.25.31.1,可以看到nginx的欢迎页面
6. 创建nginx用户(方便管理)
useradd -s /sbin/nologin nginx #创建用户
ps -ef | grep nginx #查看nginx的主进程及工作进程
cd /usr/local/nginx/
vim conf/nginx.conf #nginx配置文件
在未创建nginx进程时,我们看到nginx的worker进程用户所有人为nobody,为了方便识别和管理,我们创建该用户
三、nginx版本的更新和回退
假设nginx17版为旧版,nginx16版为新版
1. 下载nginx16版,进行解压和编译
tar zxf nginx-1.16.0.tar.gz
./configure --prefix=/usr/local/nginx --with-file-aio
make
cp -f nginx /usr/local/nginx/sbin/nginx #将16的objs/nginx放入该目录下
注意:由于之前已经安装过了nginx,所以在安装nginx16时,我们只使用make命令,就可以安装,make install命令会覆盖原有的z设置