Nginx(“engine x”)一个具有高性能的【HTTP】和【反向代理】的【WEB服务器】,同时也是一个【POP3/SMTP/IMAP代理服务器】,是由伊戈尔·赛索耶夫(俄罗斯人)使用C语言编写的,Nginx的第一个版本是2004年10月4号发布的0.1.0版本。另外值得一提的是伊戈尔·赛索耶夫将Nginx的源码进行了开源,这也为Nginx的发展提供了良好的保障。Nginx的优点有哪些?下面我们详细介绍。
Nginx的优点:
(1)速度更快、并发更高
单次请求或者高并发请求的环境下,Nginx都会比其他Web服务器响应的速度更快。一方面在正常情况下,单次请求会得到更快的响应,另一方面,在高峰期(如有数以万计的并发请求),Nginx比其他Web服务器更快的响应请求。Nginx之所以有这么高的并发处理能力和这么好的性能原因在于Nginx采用了多进程和I/O多路复用(epoll)的底层实现。
(2)配置简单,扩展性强
Nginx的设计极具扩展性,它本身就是由很多模块组成,这些模块的使用可以通过配置文件的配置来添加。这些模块有官方提供的也有第三方提供的模块,如果需要完全可以开发服务自己业务特性的定制模块。
(3)高可靠性
Nginx采用的是多进程模式运行,其中有一个master主进程和N多个worker进程,worker进程的数量我们可以手动设置,每个worker进程之间都是相互独立提供服务,并且master主进程可以在某一个worker进程出错时,快速去"拉起"新的worker进程提供服务。
(4)热部署
现在互联网项目都要求以7*24小时进行服务的提供,针对于这一要求,Nginx也提供了热部署功能,即可以在Nginx不停止的情况下,对Nginx进行文件升级、更新配置和更换日志文件等功能。
(5)成本低、BSD许可证
BSD是一个开源的许可证,世界上的开源许可证有很多,现在比较流行的有六种分别是GPL、BSD、MIT、Mozilla、Apache、LGPL。这六种的区别是什么,我们可以通过下面一张图来解释下:
Nginx本身是开源的,我们不仅可以免费的将Nginx应用在商业领域,而且还可以在项目中直接修改Nginx的源码来定制自己的特殊要求。这些点也都是Nginx为什么能吸引无数开发者继续为Nginx来贡献自己的智慧和青春。
Nginx升级教程:两种方案任你选
如果想对Nginx的版本进行更新,或者要应用一些新的模块,最简单的做法就是停止当前的Nginx服务,然后开启新的Nginx服务。但是这样会导致在一段时间内,用户是无法访问服务器。为了解决这个问题,我们就需要用到Nginx服务器提供的平滑升级功能。这个也是Nginx的一大特点,使用这种方式,就可以使Nginx在7*24小时不间断的提供服务了。接下来我们分析下需求:
需求:Nginx的版本最开始使用的是Nginx-1.14.2,由于服务升级,需要将Nginx的版本升级到Nginx-1.16.1,要求Nginx不能中断提供服务。
为了应对上述的需求,这里我们给大家提供两种解决方案:
方案一:使用Nginx服务信号完成Nginx的升级
方案二:使用Nginx安装目录的make命令完成升级
环境准备
(1)先准备两个版本的Nginx分别是 1.14.2和1.16.1
(2)使用Nginx源码安装的方式将1.14.2版本安装成功并正确访问
进入安装目录
./configure
make&&makeinstall
(3)将Nginx1.16.1进行参数配置和编译,不需要进行安装。
进入安装目录
./configure
make
方案一:使用Nginx服务信号进行升级
第一步:将1.14.2版本的sbin目录下的nginx进行备份
cd /usr/local/nginx/sbin
mv nginx nginxold
第二步:将Nginx1.16.1安装目录编译后的objs目录下的nginx文件,拷贝到原来/usr/local/nginx/sbin目录下
cd ~/nginx/core/nginx-1.16.1/objs
cp nginx /usr/local/nginx/sbin
第三步:发送信号USR2给Nginx的1.14.2版本对应的master进程
第四步:发送信号QUIT给Nginx的1.14.2版本对应的master进程
kill -QUIT `more /usr/local/logs/nginx.pid.oldbin`
方案二:使用Nginx安装目录的make命令完成升级
第一步:将1.14.2版本的sbin目录下的nginx进行备份
cd /usr/local/nginx/sbin
mv nginx nginxold
第二步:将Nginx1.16.1安装目录编译后的objs目录下的nginx文件,拷贝到原来/usr/local/nginx/sbin目录下
cd ~/nginx/core/nginx-1.16.1/objs
cp nginx /usr/local/nginx/sbin
第三步:进入到安装目录,执行make upgrade
第四步:查看是否更新成功
./nginx -v
在整个过程中,其实Nginx是一直对外提供服务的。并且当Nginx的服务器启动成功后,我们是可以通过浏览器进行直接访问的,同时我们可以通过更改html目录下的页面来修改我们在页面上所看到的内容,那么问题来了,为什么我们要修改html目录下的文件,能不能多添加一些页面是Nginx的功能更加丰富,还有前面聊到Nginx的前端功能又是如何来实现的,这就需要我们对Nginx的核心配置文件进行一个详细的学习。
Nginx使用教程:Nginx从入门到精通
资料截图
课程简介:
Nginx是一个高性能的http服务器,可以部署静态资源,做反向代理和负载均衡等内容,随着现在项目的流量越来越大,如果提升项目的并发访问量是一个比较流行的技术难题。为了更全面的使用和了解Nginx,所以对Nginx的相关内容进行了详细的讲解。现在市面上的Nginx资源非常多,本课程想通过整合,把关于Nginx从基础到进阶中常见的,比较高频的内容进行统一讲解,最后通过一个比较流行的视频直播系统部署来加强对Nginx的使用。
在本套课程中,我们会讲解到Nginx的基础包含Nginx的背景介绍、功能优点分析、下载安装及常见配置文件对Nginx进行一个入门,同时将Nginx的三大主要功能:静态资源部署、反向代理、负责均衡的使用进行详细的讲解。然后再通过负载均衡和LVS+Keepalived实现本地Nginx服务器的负载均衡。最后我们还会去使用Lua和Nginx完成数据的常用处理。
Java进阶从0到1学会Nginx分布式框架
nginx视频教程主要内容
第一天:
•Nginx的基础
•Nginx背景介绍
•常见服务器对比
•Nginx的优点及常用场景
•Nginx官方网站介绍
•Nginx的环境准备
•Nginx的多种安装方式
•Nginx目录结构分析
•Nginx的服务器启停命令与信号量控制
•Nginx实现热部署
•Nginx配置文件讲解
第二天:
•Nginx的环境部署
•Nginx的入门案例
•Nginx设置成系统服务
•Nginx中静态资源概念
•Nginx中静态资源配置
•Nginx中静态资源性能优化
•Nginx中静态资源压缩
•Nginx中跨域问题解决方案
•Nginx中防止资源盗链
第三天:
•Rewrite与代理
•Rewrite的配置
•Rewrite的使用案例
•Nginx反向代理相关配置
•Nginx的SSL设置
•Nginx反向代理优化
第四天:
•负载均衡与缓存
•Nginx负载均衡的概念
•Nginx负载均衡的四层与七层负载
•Nginx负载均衡的状态
•Nginx负载均衡的策略
•Nginx四层负载均衡的案例
•Nginx缓存的概念
•Nginx缓存的案例实现
•Nginx中关于缓存的相关配置
第五天:
•Nginx部署Tomcat及高可用环境搭建
•Nginx反向代理访问Tomcat资源
•Nginx实现动静分离
•Nginx实现负载均衡
•Nginx高可用环境搭建
•Nginx制作下载站点和认证模块
•Lua简介
•Lua的语法、类型、条件判断等
•Nginx+Lua实现Redis的操作
•Nginx+Lua实现Mysql的操作
•OpenResty+Lua实现缓存预热