目录
一、Nginx服务
Nginx的并发能力受影响因素
二、Nginx与Apache的差异
Nginx相对于Apache的优点
Apache相对于Nginx的优点
三、阻塞/非阻塞
四、同步/异步
Nginx应用场景
五、编译安装Nginx服务
关闭防火墙和安全机制
安装依赖环境
将相关包导入/opt当中
进入指定目录下编译安装
编译
将服务添加进操作系统并测试是否有问题
编辑配置文件
给文件进行赋权
添加进操作系统并重启服务
六、如何更新Nginx服务版本
查看一下当前的Nginx版本
在/opt下导入新版本的Nginx服务
进入新版本Nginx服务目录下编译安装
编译并安装
把新版的nginx文件复制并且进行覆盖老版本执行文件
在查看一下当前的Nginx服务是否更新完成
一、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网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
Nginx 是高性能的 HTTP 和反向代理的web服务器,处理高并发能力是十分强大的,能经受高负 载的考验,有报告表明能支持高达 50,000 个并发连接数。
Nginx支持热部署,启动简单,可以做到7*24不间断运行。几个月都不需要重新启动。
Nginx的并发能力受影响因素
① CPU的个数
② 本地物理服务器的最大文件打开数量(默认为1024)内核调优
Tengine也是一个遵循GPL原则上的服务,是基于Nginx进行二次开发,由淘宝网发起的Web服务器项目
二、Nginx与Apache的差异
① Nginx是基于事件的Web服务器,Apache是基于流程的服务器
② Nginx避免子进程的概念,Apache是基于子进程的
③ Nginx在内存消耗和连接方面更优,Apache的内存消耗与连接方面一般
④ Nginx性能和可伸缩性不依赖硬件,Apache依赖于CPU和内存等
⑤ Nginx支持热部署,Apache不支持热部署
⑥ Nginx对于静态文件处理更高效率,Apache效率一般
⑦ Nginx在反向代理场景具有明显的优势,Apache一般
Nginx相对于Apache的优点
Nginx比Apache占用更少的内存以及资源,高并发,Nginx处理请求是异步非阻塞的,而Apache是阻塞型的,在高并发下Nginx能保持低资源,低消耗,高性能,高度模块化的设计
Apache相对于Nginx的优点
Rewrite比Nginx的Rewrite强大,模块更多,基本都可以找到,比Nginx的BUG少很多,比较稳定
三、阻塞/非阻塞
阻塞与非阻塞是指进程执行过程中是处于持续等待状态,还是进行其他操作的同时定时查看执行进度(阻塞会占用,非阻塞可以同步执行)
阻塞
当数据没有准备的时候,需要等待结果,才会返回,中途会一直处于等待状态,不可进行别的操作,该进程会被挂起
非阻塞
当在不能立刻得到结果的时候,不会阻塞当前线程,会立刻返回,每隔一段时间会查看一次,知道获取结果,可以进行别的操作
四、同步/异步
同步与异步是指执行结果的反馈方式
同步
如果执行完成后,得到执行结果,不会直接反馈,当查询时才会告诉你执行结果进行反馈,如果不查询,就一直不会告诉你结果
异步
只要执行完就会得到结果,直接进行反馈,不管你是否进行查询,都会直接反馈执行结果
Nginx应用场景
① 静态服务器(图片,视频服务,文本)
② 动态服务
③ 反向代理,负载均衡
④ 缓存服务
Nginx中http七层代理与四层代理(Web服务器)
用于做代理服务器(反向代理、负载均衡)
五、编译安装Nginx服务
关闭防火墙和安全机制
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld #开启自动关闭防火墙
setenforce 0 #关闭安全机制
安装依赖环境
yum -y install \
pcre-devel \
zlib-devel \
gcc \
gcc-c++ \
make
将相关包导入/opt当中
进入指定目录下编译安装
./configure \
--prefix=/usr/local/nginx
--user=nginx \
--group=nginx \
--with-http_stub_status_module
编译
make -j 4 && make install #指定核进行编译
将服务添加进操作系统并测试是否有问题
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ #创建软连接
nginx -t #测试是否有语法问题
编辑配置文件
给文件进行赋权
chmod 777 /etc/init.d/nginx #给文件进行赋权
添加进操作系统并重启服务
chkconfig --add nginx #添加进操作系统
systemctl restart nginx #重启服务
六、如何更新Nginx服务版本
查看一下当前的Nginx版本
nginx -V #查看服务版本
在/opt下导入新版本的Nginx服务
进入新版本Nginx服务目录下编译安装
./confingure \
--prefix=/usr/local/nginx
--user=nginx \
--group=nginx \
--with-http_stub_status_module
编译并安装
make -j 4 && make install #指定核进行编译安装
把新版的nginx文件复制并且进行覆盖老版本执行文件
在查看一下当前的Nginx服务是否更新完成
nginx -V #查看指定服务版本