Nginx Reverse Proxy

关于Nginx基本知识在官网都可以找到,就不复述了,在这里主要理清proxy和reverse proxy,以及相关配置,用来作为socket.io服务器集群的知识铺垫。


Proxy & Reverse Proxy

我们经常使用正向代理,即用户手动设置代理服务器的ip和端口号,通过代理服务器去请求目标服务器,目标服务器会认为请求者为代理服务器。正向代理的过程,它隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求,如图


proxy.png

反向代理是用来代理服务器的,不需要用户去设置,用户认为直接访问的就是服务器。反向代理隐藏了真实的服务端。如图所示


reverse proxy.png

Reverse Proxy Configuration

相关配置在/usr/local/etc/nginx/nginx.conf中,这仅仅针对Mac而言,在其中还有一个nginx.conf.default,是用来恢复初始设定用的,在nginx.conf中的http模块这里(目前仅仅针对http而言,不涉及https),这里由一个server板块,其中监听的就是8080意思就是监听目前localhost:8080,下面的server_name就带着域名,上面listen就是端口,然后在location区域可以配置相关参数,对于反向代理的话需要在http中配置一个upstream <name>的板块。里面可以配置反向代理服务器,在server后加相应的域名以及端口名,比如

upstream my_nodes{
    server 127.0.0.1:3001;
    server 127.0.0.1:3002;
    server 127.0.0.1:3003;
}

就是配置了3个服务器,然后在server模块里配置location,如下

server {
    location / {
        proxy_pass http://my_nodes
    }
}

在这里配置就可以将访问端口8080的请求分发到my_nodes以下的服务器上,通过nginx自带的均衡负载策略就可以达到负载均衡的功能。

如果在upstream没有指明具体策略,nginx就会默认采用robin-round的算法来分发请求,是一种以轮询的方式依次将一个域名解析到多个IP地址的调度不同服务器的计算方法。

剩余策略有least_conn,就是最小连接数;ip_hash,用来实现sticky session方法;weighted load balance,用来在server 之后添加,来表示权重,用此来分配访问请求,权重分配的具体实例如下

upstream my_nodes{
    server 127.0.0.1:3001 weight=5;
    server 127.0.0.1:3002 weight=3;
    server 127.0.0.1:3003 weight=2
}

权重越大,分配到的访问几率越大。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,805评论 19 139
  • 上一篇《WEB请求处理一:浏览器请求发起处理》,我们讲述了浏览器端请求发起过程,通过DNS域名解析服务器IP,并建...
    七寸知架构阅读 81,495评论 21 356
  • Nginx简介 解决基于进程模型产生的C10K问题,请求时即使无状态连接如web服务都无法达到并发响应量级一万的现...
    魏镇坪阅读 6,323评论 0 9
  • 第一章 Nginx简介 Nginx是什么 没有听过Nginx?那么一定听过它的“同行”Apache吧!Ngi...
    JokerW阅读 32,898评论 24 1,002
  • 群里又有新招,每周在群里自主找一个结对对象,目的是互相支持、监督、学习写作。 我凡事后知后觉。加入11月写作群就晚...
    cola的春天阅读 2,860评论 4 4

友情链接更多精彩内容