Nginx系列教程集合

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寰宇001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值