上篇文章和你们聊了 Spring Session 实现 Session 共享的问题,有的小伙伴看了后表示对 Nginx 仍是很懵,所以有了这篇文章,算是一个 Nginx 扫盲入门吧!nginx
Nginx
是一个高性能的 HTTP
和反向代理 web
服务器,同时也提供了 IMAP/POP3/SMTP
服务。web
Nginx
是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.ru
站点开发的,第一个公开版本 0.1.0
发布于 2004
年 10
月 4
日。浏览器
Nginx
特色是占有内存少,并发能力强。服务器
事实上 nginx
的并发能力确实在同类型的网页服务器中表现较好,通常来讲,若是咱们在项目中引入了 Nginx
,咱们的项目架构多是这样:架构
在这样的架构中 , Nginx
所表明的角色叫作负载均衡服务器或者反向代理服务器,全部请求首先到达 Nginx
上,再由 Nginx
根据提早配置好的转发规则,将客户端发来的请求转发到某一个 Tomcat
上去。并发
那么这里涉及到两个概念:负载均衡
就是进行请求转发,下降某一个服务器的压力。负载均衡策略不少,也有不少层,对于一些大型网站基本上从 DNS
就开始负载均衡,负载均衡有硬件和软件之分,各自表明分别是 F5
和 Nginx
(目前 Nginx
已经被 F5
收购),早些年,也可使用 Apache
来作负载均衡,可是效率不如 Nginx
,因此如今主流方案是 Nginx
。微服务
另外一个概念是反向代理服务器,得先说正向代理,看下面一张图:高并发
在这个过程当中,Google 并不知道真正访问它的客户端是谁,它只知道这个中间服务器在访问它。所以,这里的代理,其实是中间服务器代理了客户端,这种代理叫作正向代理。性能
那么什么是反向代理呢?看下面一张图:
在这个过程当中,10086 这个号码至关因而一个代理,真正提供服务的,是话务员,可是对于客户来讲,他不关心究竟是哪个话务员提供的服务,他只须要记得 10086 这个号码就好了。
全部的请求打到 10086 上,再由 10086 将请求转发给某一个话务员去处理。所以,在这里,10086 就至关因而一个代理,只不过它代理的是话务员而不是客户端,这种代理称之为反向代理。
在 Java 开发中,Nginx 有着很是普遍的使用,随便举几点:
因为基本上都是在 Linux 上使用 Nginx,所以松哥这里主要向你们展现 CentOS 7 安装 Nginx:
wget http://nginx.org/download/nginx-1.17.0.tar.gz
而后解压下载的目录,进入解压目录中,在编译安装以前,须要安装两个依赖:
yum -y install pcre-devel yum -y install openssl openssl-devel
而后开始编译安装:
./configure make make install
装好以后,默认安装位置在 :
/usr/local/nginx/sbin/nginx
进入到该目录的 sbin
目录下,执行 nginx
便可启动 Nginx
:
Nginx 启动成功以后,在浏览器中直接访问 Nginx 地址:
看到如上页面,表示 Nginx 已经安装成功了。
若是修改了 Nginx 配置,则能够经过以下命令从新加载 Nginx 配置文件:
./nginx -s reload
本文算是一个简单的 Nginx 扫盲文,但愿你们看完后对 Nginx 有一个基本的认知。本文先说到这里,有问题欢迎留言讨论。
关注公众号牧码小子,专一于 Spring Boot+微服务,按期视频教程分享,关注后回复 Java ,领取松哥为你精心准备的 Java 干货!