Nginx确实是比较常用的技术(服务器)之一,不仅Java应用可以使用到,它可以应用在很多场景下。下面偶就按照自己的理解,向大家介绍一下。
什么是Nginx如果你是Java程序员,没用听说过Nginx的话,那么你肯定听说过Apache吧。Nginx也是一样,是一种WEB服务器。它有以下特点:
是使用C语言开发出来的,基于事件驱动架构,性能很高,高并发能力极强;
跨平台,可以运行在windows、Linux、Mac、Solaris等操作系统上;
第三方模块很多(生态环境好)。
那么大家再看看Nginx能做什么:
反向代理这个概念大家一定很耳熟,那么在说反向代理之前,先看看什么是正向代理。
正向代理:偶想访问谷歌,没办法直接访问,这时候找一个代理服务器,偶通过代理服务器访问谷歌;正向代理特点是客户端知道要访问的服务器地址是什么;服务器不知道客户端是谁,正向代理-代理的是客户端;
反向代理:代理服务器接收互联网端的请求,转发请求到内网中的服务器(可能会是多台服务器中的一台),得到服务器的响应之后,再把响应返回给客户端;这时候客户端不知道服务器在哪,反向代理-代理的是服务端。
在一个项目的架构中,正向代理和反向代理可能同时存在。
负载均衡因为Nginx可以做反向代理服务器,它可以把客户端的请求发送给服务器端;客户端的请求数量,就是负载量。
那么把负载量,按照一定的规则,分发给不同的服务器就行处理,这个就叫做负载均衡;负载均衡的好处,就是把压力平均到每一台服务器上。负载均衡的调度方法有:轮询,一个一个轮着发;ip_hash;url_hash;fair等。
总之,Nginx是常用的软件(服务器)之一,最好学习一下。
偶将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。计算器怎么打出表情,怎么让电脑声音大,易语言怎么调背景颜色