nginx的简单介绍与安装nginx的简单介绍
一、Nginx的产生
Nginx是一款高性能的 HTTP 和反向代理服务器,由俄罗斯人Igor Sysoev(伊戈尔·赛索耶夫)为俄罗斯网站Rambler.ru开发的,在Rambler.ru网站平稳的运行了四年,而且俄俄罗斯超过20%的虚拟主机平台采用Nginx作为反向代理服务器。
二、Nginx的优点
1.高并发量:根据官方给出的数据,能够支持高达 50,000 个并发连接数的响应
2.内存消耗少:处理静态文件,同样起web 服务,比apache 占用更少的内存及资源,所有它是轻量级的
3.简单稳定:配置简单,基本在一个conf文件中配置,性能比较稳定,可以7*24小时长时间不间断运行
4.模块化程度高:Nginx是高度模块化的设计,编写模块相对简单,包括 gzipping, byte ranges, chunked responses,以及 SSI-filter 等 filter,支持 SSL 和 TLSSNI。
5.支持Rwrite重写规则:能够根据域名、URL的不同, 将HTTP请求分发到不同的后端服务器群组。
6.低成本:Nginx可以做高并发的负载均衡,且Nginx是开源免费的,如果使用F5等硬件来做负载均衡,硬件成本比较高。
7.支持多系统:Nginx代码完全用C语言从头写成,已经移植到许多体系结构和操作系统,包括:Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows,由于Nginx是免费开源的,可以在各系统上编译并使用。
三、Nginx的缺点
1.动态处理差:nginx处理静态文件好,耗费内存少,但是处理动态页面则很鸡肋,现在一般前端用nginx作为反向代理抗住压力,apache作为后端处理动态请求。
2.rewrite弱:虽然nginx支持rewrite功能,但是相比于Apache来说,Apache比nginx 的rewrite 强大。
nginx 安装–yum安装
Nginx 部署-Yum http://www.nginx.org
Nginx版本类型
Mainline version: 主线版,即开发版
Stable version: 最新稳定版,生产环境上建议使用的版本
Legacy versions: 遗留的老版本的稳定版
进入官网
1.点击有点的download选择stable version版本
2.安装yum仓库,根据自己的系统做出相应的提示
3.查看yum repolist 是否存在nginx 仓库
4.yum -y install nginx
5.nginx 的常用简单命令
systemctl start nginx 启动nginx
systemctl enable nginx 设置开机启动
systemctl stop nginx 停止nginx
nginx -V 查看nginx的模块
ps aux |grep nginx 查看nginx的进程
Nginx系列教程-Nginx web服务器
文件读取会使用到以下几个配置
1. sendfile
使用nginx作为静态资源服务时,通过配置sendfile可以有效提高文件读取效率,设置为on表示启动高效传输文件的模式。sendfile可以让Nginx在传输文件时直接在磁盘和tcp socket之间传输数据。如果这个参数不开启,会先在用户空间(Nginx进程空间)申请一个buffer,用read函数把数据从磁盘读到cache,再从cache读取到用户空间的buffer,再用write函数把数据从用户空间的buffer写入到内核的buffer,最后到tcp socket。开启这个参数后可以让数据不用经过用户buffer。
配置语法:sendfile on | off;
默认配置:sendfile off;
配置路径:http、server、location、if in location下
2. tcp_nopush
改配置可以让数据包达到一定大小后才一次行发送,这样使得每次的请求的使用率达到最高。比如 我们有10个包裹需要快递,可以1个1个分10次来寄,这样需要10次,但是我们可以一次性将这10个快递寄出,这样只需要1次,节省了快递时填单和走路的时间,更高效。
这个配置的前提是开启 sendfile
配置语法:tcp_nopush on | off;
默认配置:tcp_nopush off;
配置路径:http、server、location
3. tcp_nodelay
改配置和 tcp_nopush 是 "互斥"的,改配置表示立刻将缓冲区数据发出,常用于实时性较高的地方,一般用于keepalive长连接下,提高网络包的实时传输性
配置语法:tcp_nodelay on | off;
默认配置:tcp_nodelay on;
配置路径:http、server、location
三分钟看懂Nginx服务器的缓存原理和机制
你关注的人,决定你看到的世界
Nginx服务器的缓存原理,是在学习过程中比较重要的一个知识点,学习通透之后,对于自己的能力会有不小的提升——而且提升不只限于nginx一方面,技术理论一通百通,对于理解其他内容也会有很大帮助。
Web缓存主要思想
Web缓存技术的基本思想是利用客户访问的时间局部性原理,对客户已经访问过的内容在Nginx服务器本地建立副本,这样在一段时间内再次访问该数据,就不需要通过Nginx服务器再次向后端服务器发出请求,所以能够减少Nginx服务器与后端服务器之间的网络流量,减轻网络拥塞,同时还能减小数据传输延迟,提高用户访问速度。同时,当后端服务器宕机时,Nginx服务器上的副本资源还能够回应相关的用户请求,这样能够提高后端服务器的鲁棒性。
Nginx缓存实现原理
基于Proxy Store的缓存机制
01、404错误驱动
当Nginx服务器发现,用户请求数据在服务器本地不存在时,会产生404错误,服务器能够捕捉该错误,进一步转向后端服务器请求相关数据,最后将后端请求到的数据传回客户端,并在服务器本地缓存。
02、资源不存在驱动
原理上基本等同于404错误驱动,不同之处在于该方法是通过location块的location if条件判断直接驱动Nginx服务器和后端服务器的通信和Web缓存,而不对资源不存在产生404错误。
配置文件片段:
这两种缓存机制只能缓存200状态下的响应数据,同时不支持动态链接请求。比如:getsource?id=1和getsource?id=2这两个请求,返回的是相同的资源。所以实际上,一般是采用Nginx搭配Squid服务器架构实现方案。
基于memcached的缓存机制
memcached在内存中开辟一块空间,然后建立一个Hash表,将缓存数据通过键/值存储在Hash表中进行管理。memcached由服务端和客户端两个核心模块组成,服务端通过计算“键”的Hash值来确定键/值对在服务端所处的位置。当位置确定后,客户端就会向对应的服务端发送一个查询请求,让服务端查找并返回所需数据。
到这里,关于nginx服务器缓存的内容就暂时告一段落了,希望大家在这篇文章里都能有所收获。如果你有更好的想法,欢迎在评论区留言讨论哦~
参考链接
彻底搞懂 Nginx 五大应用场景!出去吹牛逼再也不担心了 :https://mp.weixin.qq.com/s/TvQj6f9Ok9zfUiENd_W2JA
nginx 的日志配置 : https://mp.weixin.qq.com/s/ZZtEGexGbw-_ioNrMQXvdg
nginx传世经典 : https://mp.weixin.qq.com/s/-PQbuidg2UvOJQbkdgW58A
Nginx系列教程-Nginx web服务器https://mp.weixin.qq.com/s/4-58AO0_RfJKxOAkVA06wg
三分钟看懂Nginx服务器的缓存原理和机制 : https://mp.weixin.qq.com/s/juBvKbZXtFr9yxViM7Krxw
nginx随机模块——ngx_http_random_index_module : https://mp.weixin.qq.com/s/dIIlRITj6S0owXaUqK2Sdg
nginx——防盗链功能 : https://mp.weixin.qq.com/s/J4054pR69KvMHPgxkxcbjQ
Nginx系列教程-nginx 隐藏nginx版本号 : https://mp.weixin.qq.com/s/Lgx49yLWqZD22gFTYTllqw
Nginx系列教程之nginx 更改用户组 : https://mp.weixin.qq.com/s/EMtqJTVAUZS0J7c5xiQcPg
Nginx系列教程之绑定 Nginx 进程到不同的 CPU 上 : https://mp.weixin.qq.com/s/HLvKBaTFWXTA9KrDXN-ahQ
Nginx系列教程之优化 Nginx worker 进程数 :https://mp.weixin.qq.com/s/JGxOMoMi9iw_-xs9WHa6Yg
Nginx系列教程之nginx 开启高效文件传输模式 : https://mp.weixin.qq.com/s/SaM0HCFl1N6k0Gl2Syldng
Nginx系列教程之Nginx 单个进程允许的最大连接数 : https://mp.weixin.qq.com/s/O0t78mHv-oLixPiDKZw1HQ
Nginx系列教程之控制 Nginx 并发连接数 : https://mp.weixin.qq.com/s/UK3ntxhIcWEq762Jd3G99g
Nginx系列教程之优化 Nginx 站点目录 : https://mp.weixin.qq.com/s/b7gmQRtKO7N_wlu9gpNvTg
Nginx系列教程之限制上传文件的大小 : https://mp.weixin.qq.com/s/yA7on8YRC8NEwv3W92T05A
Nginx系列教程之FastCGI 相关参数调优 : https://mp.weixin.qq.com/s/WGtL6y107EZzr5sjETpXRg
Nginx系列教程之Nginx 防爬虫优化 : https://mp.weixin.qq.com/s/p-S74nyLrhDR5mHp30-lrg
nginx应用:使用nginx进行金丝雀发布 : https://mp.weixin.qq.com/s/qxcENtdg0Jl6A1tpq_SeZg
nginx的location if是如何工作的 : https://mp.weixin.qq.com/s/NA1ASpSrDcnfPMQx3jPLLg
纯干货,一文带你了解如何配置Nginx日志!https://mp.weixin.qq.com/s/lVEjEuhdQkv_sjb77SA56w