• 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地址
  • 相关阅读:
    主从数据库
    Linux 安装 mysql
    centos7.5上安装go1.13.4
    Linux 安装php
    CENTOS7下安装redis
    CentOS 7安装Etherpad(在线协作编辑)
    nginx《一安装》
    springboot中redis取缓存类型转换异常
    linux安装mysql
    linux上传下载文件(转载https://www.jb51.net/article/143112.htm)
  • 原文地址:https://www.cnblogs.com/SutCoderHang/p/9867413.html
Copyright © 2020-2023  润新知