nginx 的意义及作用(宏观理解)

nginx 是轻量级的Web服务器。由于配置简单,容量小被应用于各个项目。
在java企业级开发中,常常作为前端静态资源的代理的服务器,如果配置的好可支持5W并发量。
作用:
  1. 反向代理
  2. 正向代理
  3. 负载均衡
  4. HTTP服务器(包含动静分离)
区别及意义:
    正向代理,代理介于 client 与 service 之间, client 通过proxy 去访问service 返回资源   (代理客户端)  
    想象你挂VPN的代理并设置一些东西就可以通过某台机器FQ了。
 
    反响代理:proxyService代理service,client 不知道service 的存在,将访问service 全全交给了proxyService (代理原始服务器)
    理解:nginx代理服务器这样你就不用去编写任何配置,交给nginx 去配置就好了,nginx收到你的请求会自动根据配置转发到对应的服务器去。
 
何为均衡负载:(多用于服务器集群)其实和ZUUL比较像
均衡负载表示通过代理服务器统一去管理其他服务器,然后client 访问代理服务器(proxyService),proxyService去均衡的分发请给个其他服务器,保证每个服务器得到均衡的并发。
nginx 通过反向代理实现均衡负载。
实现均衡负载的处理方式:
  • round-robin:轮询。以轮询方式将请求分配到不同服务器上
  • least-connected:最少连接数。将下一个请求分配到连接数最少的那台服务器上
  • ip-hash :基于客户端的IP地址。散列函数被用于确定下一个请求分配到哪台服务器上
 流程理解:
例:假设访问springBoot 启动的1个服务 Ip:192.168.255.255:10010     使用niginx代理后项目的请求流程理解:
   1、浏览器发起请求 如:www.wuyou.com 浏览器就会进行域名解析,转换成IP+端口号进行访问,所以浏览器将找到hosts 文件中的对应关系,如果找不到就到中央服务器那找(肯定能找到照只要你的网站做了备案并通过),所以你只需要增加一个该文件的配置即可:192.168.255.255  www.wuyou.com 
   2、这样当你访问 www.wuyou.com 该域名自动会被解析成192.168.255.255 该IP
   3、在HTTP协议中,默认端口号是80 端口,所以你访问域名时IP:port 是192.168.255.255:80 这与我们实际想访问的服务器端口不匹配,这时候就需要用到nginx 了
   4、在nginx 中修改conf 配置文件,监听80端口并配置类似路由的配置即可实现请求的转发。见以下配置:
server {
        listen       80; #监听的端口号
        server_name  www.wuyou.com; #域名
 
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        location / {
            proxy_pass http://192.168.255.255:10010; #转发的地址
            proxy_connect_timeout 600; #超时
            proxy_read_timeout 600;
        }
    }

以上就是整个执行流程。

 

posted @ 2018-06-05 16:48  蓝色丶格调  阅读(3628)  评论(0编辑  收藏  举报