精华内容
下载资源
问答
  • 为什么使用Nginx

    2020-08-16 18:59:43
    二、为什么使用Nginx? 在传统的Web项目中,并发量小,用户使用的少。所以在低并发的情况下,用户可以直接访问tomcat服务器,然后tomcat服务器返回消息给用户。比如,我们上传图片: 当然我们知道,...

    一、前言

          为毛要用nginx服务器代理,不直接用tomcat 7.0,还做多了一次接请求?

          这个是我想问的,公司的新项目是要用Nginx+tomcat7+jdk开发的,用户命名可以直接访问tomcat,为啥还要用Nginx?这货是个啥玩意?

    二、为什么使用Nginx?

          在传统的Web项目中,并发量小,用户使用的少。所以在低并发的情况下,用户可以直接访问tomcat服务器,然后tomcat服务器返回消息给用户。比如,我们上传图片:

     

          当然我们知道,为了解决并发,可以使用负载均衡:也就是我们多增加几个tomcat服务器。当用户访问的时候,请求可以提交到空闲的tomcat服务器上。

     

     

          但是这种情况下可能会有一种这样的问题:上传图片操作。我们把图片上传到了tomcat1上了,当我们要访问这个图片的时候,tomcat1正好在工作,所以访问的请求就交给其他的tomcat操作,而tomcat之间的数据没有进行同步,所以就发生了我们要请求的图片找不到。

          为了解决这种情况,我们就想出了分布式。我们专门建立一个图片服务器,用来存储图片。这样当我们都把图片上传的时候,不管是哪个服务器接收到图片,都把图片上传到图片服务器。

          图片服务器上需要安装一个http服务器,可以使用tomcat、apache、nginx。

     

     

          看到这里大家可能会问,既然我们要选择的是http服务器,为什么不继续使用tomcat,而要使用Nginx?

          原因如下:nginx常用做静态内容服务和代理服务器(不是你FQ那个代理),直面外来请求转发给后面的应用服务(tomcat,django什么的),tomcat更多用来做做一个应用容器,让java web app跑在里面的东西,对应同级别的有jboss,jetty等东西。

     

    三、什么是Nginx?

          根据前面的对比,我们可以了解到Nginx是一个http服务器。是一个使用c语言开发的高性能的http服务器及反向代理服务器。Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。

    3.1 Nginx的应用场景

          1、 http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。

          2、 虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。

    • 基于端口的,不同的端口
    • 基于域名的,不同域名

          3、 反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。

    四、小结

          通过了解Nginx也算是多了一门技术,而且还是挺简单的,使用也比较方便。重点是可以给系统带来很大的性能提升。

    展开全文
  • 什么是Nginx?为什么使用Nginx

    万次阅读 多人点赞 2018-05-22 15:49:08
    一、前言 为毛要用nginx服务器代理,不直接用tomcat 7.0,还做多了一次接请求?...二、为什么使用Nginx? 在传统的Web项目中,并发量小,用户使用的少。所以在低并发的情况下,用户可以直接访问tomcat服务器...

    一、前言

          为毛要用nginx服务器代理,不直接用tomcat 7.0,还做多了一次接请求?

          这个是我想问的,公司的新项目是要用Nginx+tomcat7+jdk开发的,用户命名可以直接访问tomcat,为啥还要用Nginx?这货是个啥玩意?

    二、为什么使用Nginx?

          在传统的Web项目中,并发量小,用户使用的少。所以在低并发的情况下,用户可以直接访问tomcat服务器,然后tomcat服务器返回消息给用户。比如,我们上传图片:

    这里写图片描述

          当然我们知道,为了解决并发,可以使用负载均衡:也就是我们多增加几个tomcat服务器。当用户访问的时候,请求可以提交到空闲的tomcat服务器上。

    这里写图片描述

          但是这种情况下可能会有一种这样的问题:上传图片操作。我们把图片上传到了tomcat1上了,当我们要访问这个图片的时候,tomcat1正好在工作,所以访问的请求就交给其他的tomcat操作,而tomcat之间的数据没有进行同步,所以就发生了我们要请求的图片找不到

          为了解决这种情况,我们就想出了分布式。我们专门建立一个图片服务器,用来存储图片。这样当我们都把图片上传的时候,不管是哪个服务器接收到图片,都把图片上传到图片服务器。

          图片服务器上需要安装一个http服务器,可以使用tomcat、apache、nginx。

    这里写图片描述

          看到这里大家可能会问,既然我们要选择的是http服务器,为什么不继续使用tomcat,而要使用Nginx?

          原因如下:nginx常用做静态内容服务和代理服务器(不是你FQ那个代理),直面外来请求转发给后面的应用服务(tomcat,django什么的),tomcat更多用来做做一个应用容器,让java web app跑在里面的东西,对应同级别的有jboss,jetty等东西。

          借鉴博客:nginx和tomcat的区别

    三、什么是Nginx?

          根据前面的对比,我们可以了解到Nginx是一个http服务器。是一个使用c语言开发的高性能的http服务器及反向代理服务器。Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。

    3.1 Nginx的应用场景

          1、 http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。

          2、 虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。

    • 基于端口的,不同的端口
    • 基于域名的,不同域名

          3、 反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。

    展开全文
  • 2.为什么使用nginx?3.nginx和tomcat的区别?4.Nginx的应用场景5.负载均衡的作用6.轮询法简单例子 1.什么是nginx? nginx是一个高性能的web和反向代理服务器。 作为Web服务器: 相比Apache,Nginx使用更少的资源,...

    1.什么是nginx?

    1. nginx是一个高性能的web和反向代理服务器。
      作为Web服务器:
      相比Apache,Nginx使用更少的资源,支持更多的并发连接,体现更高的效率,能够支持高达50000个并发连接数的相应,也可以作为反向代理服务器,解决跨域问题。
    2. 作为负载均衡服务器,实现集群功能:
      负载平衡是一种常用的技术来优化利用资源最大化吞吐量,减少等待时间,确保容错,使用nginx作为一种非常高效的HTTP负载平衡器,将流量分配到多个应用服务器上提高性能,可扩展性和高可用性。
    3. 作为邮件代理服务器:
      Nginx同时也是一个非常优秀的邮件代理服务器

    2.为什么使用nginx?

    传统项目并发量小,用户使用的少,在低并发的情况下,用户直接访问tomcat服务器,然后tomcat服务器返回消息给用户。比如上传图片
    在这里插入图片描述
    为了解决并发,使用负载均衡,可以想到的就是增加tomcat服务器,用户访问时将请求转发给空闲tomcat。
    在这里插入图片描述
    这个时候会有问题:上传图片操作,我们把图片上传到了tomcat1上,当访问图片时,tomcat1在工作,这时会将请求交给别的服务器,而tomcat之间没有进行同步,就会出现我们请求的图片找不到。
    为了解决上述问题,提出了分布式,专门建立图片服务器,我们把图片上传,不管哪个服务器接收到图片,都把图片上传到图片服务器。
    图片服务器上需要安装一个http服务器,可以使用tomcat、apache、nginx。
    在这里插入图片描述
    既然我们要选择的是http服务器,为什么不继续使用tomcat,而要使用nginx?
    原因如下:nginx常用做静态内容服务和代理服务器,直面外来请求转发给后面的应用服务(tomcat,django等),tomcat更多用来做一个应用容器,让java web app 跑在里面的东西,对应同级别的有jboss,jetty等。

    3.nginx和tomcat的区别?

    nginx应该叫做【HTTP Server】,tomcat应该是【Application Server】,是一个【Servlet/JSP】应用的容器。
    一个HTTP Server关心的是HTTP协议层面的传输和访问控制,所以在nginx上看到代理,负载均衡等动能。客户端通过HTTP Server访问服务器上存储的资源。通过CGI技术,也可以将处理过的内容通过HTTPServer分发,但是一个HTTPServer始终只是把服务器上的文件如实的通过HTTP协议传输给客户端。
    而应用服务器,则是一个应用执行的容器。他首先需要支持开发语言的Runtime,保证正常运行。其次支持相关的规范,例如类库,安全方面的特性。对于tomcat,提供JSP/Servlet运行需要的标准类库、Interface等。应用服务器也会继承HTTP Server的功能,但不够专业,所以应用服务器往往运行在HTTPServer的背后,执行应用,将动态的内容转化成为静态的内容之后,通过HTTP Server分发给客户端。

    4.Nginx的应用场景

    1. http服务器。nginx是一个http服务器可以独立提供http服务。可以做网页静态服务器。
    2. 虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。
    • 基于端口的,不同端口
    • 基于域名的,不同域名
    1. 反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。

    5.负载均衡的作用

    负载均衡:分摊到多个操作单元上进行执行,需要一个调度者,保证所有后端服务器都能将性能充分发挥,从而保证服务器集群的整体性能最优,这就是负载均衡。

    下面说说简单的使用nginx实现负载均衡
    负载均衡算法

    • **原地址哈希码:**根据获取客户端的IP地址,通过哈希函数计算得到一个数值,用该数值对服务器列表的大小进行取模运算,得到的结果便是客户端要访问的服务器的序号。采用高原地址哈希法进行负载均衡,同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行访问。
    • **轮询法:**将请求按顺序轮流的分配到后端服务器上,它均衡的对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。
    • **随机发:**通过系统的随机算法,根据后端服务器的列表大小值来随机选取其中的一台服务器进行访问。
    • **加权轮询法:**不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此它们的抗压能力也不行同。给配置高,负载低的机器配置更高的权重,让其处理更多的请求;而配置低、负载高的机器,给其分配低的权重,降低其系统负载,加权轮询能很好的处理这一问题,并将请求顺序按照权重分配到后端。
    • **加权随机法:**与加权轮询法一样,加权随机法也根据后端机器的配置,系统的负载分配不同的权重。不同的是,它是按照权重随机请求后端服务器,而非顺序。
    • **最小连接数法:**由于后端服务器的配置不尽相同,对于请求的处理有快有慢,最小连接数法根据后端服务器当前的连接情况,动态地选取其中当前积压连接数最少的一台服务器来处理当前的请求,尽可能地提高后端服务的利用效率,合理的分流到每一台服务器。

    6.轮询法简单例子

    nginx做静态资源代理,例子中用到了两台服务器,负责调度分发的nginx服务器和其中一台服务器在一起,然后还有另一台单独的处理服务器,下图
    在这里插入图片描述
    实际开发应该是:
    在这里插入图片描述
    conf文件的配置如下:

    //test-yii2.conf
    upstream guwenjie_http {
            server **.***.***.***:9503 weight=1;
            server **.***.***.***:8811 weight=2;
    }
    server
         {
            listen 80;
            #listen [::]:80 default_server ipv6only=on;
            server_name test1.freephp.top;
            index  index.php index.html   index.htm ;
            root   /home/wwwroot/workspace/public/static;
    
            #error_page   404   /404.html;
    
            # Deny access to PHP files in specific directory
            #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }
    
            include enable-php.conf;
    		
    		location / {
                 if (!-e $request_filename){
                    #proxy_pass http://127.0.0.1:8855;
                    proxy_pass http://guwenjie_http;
                 }
             }
             
            location /nginx_status
            {
                stub_status on;
                access_log   off;
            }
    
            location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
            {
                expires      30d;
            }
    
            location ~ .*\.(js|css)?$
            {
                expires      12h;
            }
    
            location ~ /.well-known {
                allow all;
            }
    
            location ~ /\.
            {
                deny all;
            }
    

    我们解释以下几点:

    • 静态资源代理
      root目录设置为下面所示目录,这里存放静态资源,真正放在127.0.0.1:8855 项目下的该目录。这里的IP本应是另一台服务器IP,为了测试就使用本机了。
      那么在这种情形下,当你访问配置的域名: test1.freephp.top/index.html 文件的话,我们依然能够访问成功,并且访问到了 127.0.0.1:8855 下 static 目录下的index.html
    ...
    ...
     root   /home/wwwroot/workspace/public/static;
    ...
    ...
    location / {
                 if (!-e $request_filename){
                    proxy_pass http://127.0.0.1:8855;
                 }
             }
    
    • 负载均衡配置
      我们使用nginx中的upstream模块来实现nginx将跨越单击的限制,完成网络数据的接收、处理和转发。我们主要使用提到的转发功能进行调度分发。
      定义的upstream模块名称是zc_http,配置两个IP端口
    //举例,以下IP,端口无效
     upstream test{ 
          server 11.22.333.11:6666 weight=1; 
          server 11.22.333.22:8888 down; 
          server 11.22.333.33:8888 backup;
          server 11.22.333.44:5555 weight=2; 
    }
    //down 表示单前的server临时不參与负载.
    //weight 默觉得1.weight越大,负载的权重就越大
    //backup: 其他全部的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻
    

    后面的 weight=1,weight=2 是表示权重的意思,数字越大,权重越高,在该例中 8811 这个端口权重就是 8855 的两倍,比如三次请求,大概就是两次分发给 8811 一次分发给 8855 ,其实这个是不需要写的,upstream 模块默认就是轮询法,每个ip分发一次,设置权重(加权轮询法)的意义上面已经解释过了,可以看下。

    upstream guwenjie_http {
            server **.***.***.***:8855 weight=1;
            server **.***.***.***:8811 weight=2;
    }
    ...
    ...
     root   /home/wwwroot/workspace/public/static;
    ...
    ...
    location / {
                 if (!-e $request_filename){
                     proxy_pass http://guwenjie_http;
                 }
             }
    

    原地址哈希法
    什么是源地址哈希法,就是对访问用户的IP进行hash后的结果进行分配,这样每一个用户固定请求同一个后端服务器,能够解决session的问题。

    upstream guwenjie_http {
    		ip_hash; 
            server **.***.***.***:8855;
            server **.***.***.***:8811;
    }
    

    说明:
    以上就是简单的负载均衡的实现。准确的来说,这些属于:HTTP重定向实现负载均衡。它有一个比较大的缺点,(引用:)由于不同用户的访问时间、访问页面深度有所不同,从而每个用户对各自的后端服务器所造成的压力也不同。而调度服务器在调度时,无法知道当前用户将会对服务器造成多大的压力,因此这种方式无法实现真正意义上的负载均衡,只不过是把请求次数平均分配给每台服务器罢了。
    但是它确实实现了负载均衡,在一些要去并不强烈的项目中可以使用http重定向来实现均衡每台服务器压力的效果,以达到更高的并发总量。

    展开全文
  • 【Nginx】什么是Nginx?为什么使用Nginx

    万次阅读 多人点赞 2017-06-12 20:17:13
    一、前言 毛要用nginx服务器代理,不直接用tomcat 7.0,还做多了一次接...二、什么Nginx? 在传统的Web项目中,并发量小,用户使用的少。所以在低并发的情况下,用户可以直接访问tomcat服务器,然后tomcat服务器

    一、前言

          为毛要用nginx服务器代理,不直接用tomcat 7.0,还做多了一次接请求?

          这个是我想问的,公司的新项目是要用Nginx+tomcat7+jdk开发的,用户命名可以直接访问tomcat,为啥还要用Nginx?这货是个啥玩意?

    二、为什么使用Nginx?

          在传统的Web项目中,并发量小,用户使用的少。所以在低并发的情况下,用户可以直接访问tomcat服务器,然后tomcat服务器返回消息给用户。比如,我们上传图片:


    这里写图片描述

          当然我们知道,为了解决并发,可以使用负载均衡:也就是我们多增加几个tomcat服务器。当用户访问的时候,请求可以提交到空闲的tomcat服务器上。

    这里写图片描述

          但是这种情况下可能会有一种这样的问题:上传图片操作。我们把图片上传到了tomcat1上了,当我们要访问这个图片的时候,tomcat1正好在工作,所以访问的请求就交给其他的tomcat操作,而tomcat之间的数据没有进行同步,所以就发生了我们要请求的图片找不到。

          为了解决这种情况,我们就想出了分布式。我们专门建立一个图片服务器,用来存储图片。这样当我们都把图片上传的时候,不管是哪个服务器接收到图片,都把图片上传到图片服务器。

          图片服务器上需要安装一个http服务器,可以使用tomcat、apache、nginx。

    这里写图片描述

          看到这里大家可能会问,既然我们要选择的是http服务器,为什么不继续使用tomcat,而要使用Nginx?

          原因如下:nginx常用做静态内容服务和代理服务器(不是你FQ那个代理),直面外来请求转发给后面的应用服务(tomcat,django什么的),tomcat更多用来做做一个应用容器,让java web app跑在里面的东西,对应同级别的有jboss,jetty等东西。

          借鉴博客:

    三、什么是Nginx?

          根据前面的对比,我们可以了解到Nginx是一个http服务器。是一个使用c语言开发的高性能的http服务器及反向代理服务器。Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。

    3.1 Nginx的应用场景

          1、 http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。

          2、 虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。

    • 基于端口的,不同的端口
    • 基于域名的,不同域名

          3、 反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。

    四、小结

          通过了解Nginx也算是多了一门技术,而且还是挺简单的,使用也比较方便。重点是可以给系统带来很大的性能提升。

          下一篇将讲解如何安装Nginx。

    展开全文
  • 一.什么是nginx 1.Nginx是一款轻量级的Web 服务器/反向代理服务器及电子...为什么使用nginx 1.这个问题可能大家都有,我刚接触的时候也会有,为什么要用ngxin做服务器代理,为什么不直接用tomcat,还做多一次请求?...
  • 一、前言 为毛要用nginx服务器代理,不直接用tomcat 7.0,还做多了一次接请求? 这个是我想问的,公司的新项目是要用Nginx+tomcat7+jdk开发的,用户命名可以直接...二、为什么使用Nginx? **nginx和tomcat的区别...
  • 转载自:我不是Tomcat的同桌,我是Tomcat  一、前言 为毛要用nginx服务器代理,不直接用tomcat 7.0,还做多了一次接请求?...二、为什么使用Nginx? 在传统的Web项目中,并发量小,用户使用的少...
  • 为什么使用Nginx反向代理: 1.安全及权限:使用Nginx之后,用户端不能直接通过请求访问内部服务器,而是必须通过Nginx,在Nginx层上会把危险的或者没有权限的请求你直接过滤掉,从而保证了服务器的安全性。 2.负载...
  • 首先介绍一下为什么使用nginx和FastDFS,看下面这个图,传统方式上传图片的话,把图片存到项目里面的一个文件夹下面是没有问题的,但是这种项目只适用于小型项目并发量小的. 但是电商项目,互联网项目并发量是很高的,...
  • 一、前言 为毛要用nginx服务器代理,不直接用tomcat 7.0,还做多...二、为什么使用Nginx? 在传统的Web项目中,并发量小,用户使用的少。所以在低并发的情况下,用户可以直接访问tomcat服务器,然后tomcat服务器返回...
  • 什么Nginx? 根据前面的对比,我们可以了解到Nginx是一个http服务器。是一个使用c语言开发的高性能的http服务器及反向代理服务器。Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理...
  • Nginx的优点 更多免费教学文章请关注这里             1、可以高并发连接           官方测试Nginx...
  • 首先介绍一下为什么使用nginx和FastDFS,看下面这个图,传统方式上传图片的话,把图片存到项目里面的一个文件夹下面是没有问题的,但是这种项目只适用于小型项目并发量小的. 但是电商项目,互联网项目并发量是很高的,所以...
  • 一、前言     ...这个是我想问的,公司的新项目是要用Nginx+tomcat7+jdk开发的,用户命名可以直接访问tomcat,啥还要用Nginx?这货是个啥玩意? 二、什...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,853
精华内容 1,141
关键字:

为什么使用nginx