Skip to content

Nginx

https://blog.csdn.net/tsummerb/article/details/79248015 对 nginx 正向、反向带来写的比较好的文章

nginx 的正向代理?

我忘记是 2018 年在哪一家公司面试了,面试官问我,你知道什么是 nginx 正向代理?我楞了下,说不知道,后面想一直知道这个知识点。直到我直到这个知识点后,傻楞了,我一个前端知道个锤子 nginx 正向代理啊,我去!算了,本着学习的心态,不想回忆起这个沙雕面试官了。

  • 正向代理最大的特点是客户端非常明确要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;正向代理模式屏蔽或者隐藏了真实客户端信息。
  • 内网服务主动要求请求外网的地址服务,内网服务->访问->外网。((⊙_⊙)?,所以我 ssh 到服务器 curl 百度,也算了)
  • (应该可以本来按着a 页面返回给用户,结果我让百度页面返回给用户?恩?)
  • 以通过代理软件访问 facebook 这样的例子,比较形象
txt
  server{
    resolver 8.8.8.8
  }

nginx 的反向代理?

  • proxy_pass
  • upstream
  • 外网主动请求内网服务,外网->请求->内网服务
  • 请求的来源也就是客户端是明确的,但是请求具体由哪台服务器处理的并不明确了,nginx 扮演的就是一个反向代理角色
  • 用户去访问淘宝,但返回给用户的内容的服务器,可能来自浙江,可能来自北京

nginx 负载均衡

  • 硬件负载均衡

  • 软件负载均衡

    与硬件主机实现一种消息队列分发机智

  • 负载均衡调度算法

    • weight 轮询

      皇帝翻牌子比较形象了!可以设定一些权重,来增加获得宠幸的几率,被打入冷宫的 out 出局。。。

    • ip_hash

      客户端 ip 的 hash 匹配,一个固定 ip 从会访问到同一个后端,一定程度解决了集群下,session 共享问题

    • fair

      智能调整算法调度?动态的根据后端服务器的请求处理处理的响应时间,进行均衡的分配,响应时间短的,分配到的几率高,长的,分配的少!需要安装 upstream_fair 模块

    • url_hash

      根据 url+hash 结果,每次请求的 url 都指定到后端固定服务器,nginx 作为静态服务器下,提高缓存效率。需要安装 hash 软件包

一段基于 vue 项目 nginx 配置文件

txt
{
  worker_processes  1;
  events {
      worker_connections  1024;
  }
  http {
      include       mime.types;
      default_type  application/octet-stream;
      sendfile        on;
      keepalive_timeout  65;
      server {
          listen       80;
          server_name  localhost;

      location / {
              root   F:\baidu\dist;
              try_files $uri $uri/ @router;
              index  index.html;
      }

      location @router {
              rewrite ^.*$ /index.html last;
      }
      location ^~/api/{
        proxy_pass http://www.baidu.com/;
        }
      }
  }
}

一段基于 nuxt 项目的 nginx 配置文件

Powered by veaba