当前位置: 首页 > news >正文

nginx知识总结

nginx知识总结

一、功能

  • 负载均衡
  • 反向代理
  • 静态资源服务器

二、来源

  • nginx 俄罗斯第二网站开源项目
  • tengine 淘宝团队基于nginx开发的
  • 区别:nginx安装之后还得装第三方软件包,tengine将其封装一起

三、正向代理与反向代理

  • 正向代理:当你访问某个网站时,不去直接通过客户端访问,而是通过代理服务器进行访问。
    进而隐藏自己真正的客户端身份,FQ就是采用这样的原理。
  • 反向代理:当你去访问某个网站,并没有直接放到该网站的业务服务器,而是先访问其中一个代理服务器,由代理服务器进行分配到业务服务器,这样的情况称为反向代理。

四、具体功能

1.反向代理

  • 刚刚讲到,nginx就可以当一个代理服务器,后面跟几台业务服务器。nginx起到连接的作用,而后面的应用服务器负责处理业务。
  • 这样做的好处是(以Django为例)。用户访问网页可以分为活跃与非活跃,非活跃相当于长连接。试想如果由很多个非活跃链接
    业务服务器的话,那么该服务器会在多个链接中无限切换,切换成本很高。而Django的并发量可能只有两千,所以显然
    当并发量过高时这样配服务器是不合理的。
  • 所以这个时候我们可以借助nginx作为代理服务器,凡是并发很多非活跃的链接直接由nginx处理,而哪些活跃度较高的用户可以分配给业务服务器处理。

2.负载均衡

  • nginx的角色相当于是业务服务器的管理员,它要保证每一台服务器上面承载量是均衡的,不能有的服务器负载多,有的几乎没有。要做到雨露均沾,而具体实现的方法则利用到了nginx的负载均衡的四种调度算法。

负载均衡四种调度算法:

  • 轮询------(默认循环分配)、也可以设置权重,权重高的先分标配。
  • ip_Hash-----根据用户ip进行映射,不同的ip访问不同的服务器。这样做的好处可以重复利用用户每次访问的数据。
  • fair-----根据服务器响应快慢的优先分配。
  • url_hash----根据url分配,比如图片资源分配到图片服务器。

3.静态资源服务器

  • nginx可以当静态资源服务器,即可以把静态页面、图片、JS文件、CSS文件等静态资源放到nginx上(中小型项目建议这么做,可以减少
    nginx与业务服务器的来回交互)比如一些网站的首页,做成静态的,不需要每次都访问数据库。

五、几种语言开发的并发情况

  • 单台服务器提高并发用C / C++,但是代码量大,开发周期长。
    一般网站都用python php java开发,并发没有C / C++高 但是开发快。

六、linux可以用epoll,支持并发数量多活跃度不多的高效性。

七、nginx很重要,一旦挂了可能后面的服务器也会跟着挂,一定要有备用服务器。

八、nginx

url重写是指通过配置conf文件,以让网站的url中达到某种状态时则定向/跳转到某个规则,比如常见的伪静态、301重定向、浏览器定向等。

rewrite
语法
在配置文件的server块中写,如:

server {
    rewrite 规则 定向路径 重写类型;
}
  • 规则:可以是字符串或者正则来表示想匹配的目标url
  • 定向路径:表示匹配到规则后要定向的路径,如果规则里有正则,则可以使用$index来表示正则里的捕获分组

重写类型:

  • last:相当于Apache里德(L)标记,表示完成rewrite,浏览器地址栏URL地址不变
  • break:本条规则匹配完成后,终止匹配,不再匹配后面的规则,浏览器地址栏URL地址不变
  • redirect:返回302临时重定向,浏览器地址不会显示跳转后的URL地址
  • permanent:返回301永久重定向,浏览器地址栏会显示跳转后的URL地址

转载于:https://www.cnblogs.com/SutCoderHang/p/9867413.html

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 关于外键约束和对应主键信息的查询脚本
  • struts2知识复习之二
  • 将链表逆序(Revert)的C#实现
  • 高中数学中需要重点关注的函数和图像
  • 如何实现DES算法
  • TensorFlow系列专题(三):深度学习简介
  • top命令解析
  • Tensorflow 笔记
  • 经典总结:PERL中用DBD:ORACLE模块的权限问题
  • 许昌五女店考场考试安排
  • perl链接数据库实例
  • android的四种线程池
  • mybatis0210 mybatis和ehcache缓存框架整合
  • 激活 win10 企业版2016长期服务版本
  • jQuery MD5加密
  • 自己简单写的 事件订阅机制
  • [笔记] php常见简单功能及函数
  • 【node学习】协程
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • CSS盒模型深入
  • es6要点
  • Fabric架构演变之路
  • FastReport在线报表设计器工作原理
  • Idea+maven+scala构建包并在spark on yarn 运行
  • Mysql5.6主从复制
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • PermissionScope Swift4 兼容问题
  • storm drpc实例
  • 阿里云应用高可用服务公测发布
  • 分布式事物理论与实践
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 如何进阶一名有竞争力的程序员?
  • 思否第一天
  • 【干货分享】dos命令大全
  • 大数据全解:定义、价值及挑战
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • #每日一题合集#牛客JZ23-JZ33
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (k8s中)docker netty OOM问题记录
  • (Ruby)Ubuntu12.04安装Rails环境
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (第一天)包装对象、作用域、创建对象
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (黑马点评)二、短信登录功能实现
  • (回溯) LeetCode 40. 组合总和II
  • (回溯) LeetCode 78. 子集
  • (蓝桥杯每日一题)love
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (四)软件性能测试
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • .NET CLR Hosting 简介
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .NET 中让 Task 支持带超时的异步等待
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。