Nginx 极简入门教程!

上篇文章和你们聊了 Spring Session 实现 Session 共享的问题,有的小伙伴看了后表示对 Nginx 仍是很懵,所以有了这篇文章,算是一个 Nginx 扫盲入门吧!nginx

基本介绍

Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务。web

Nginx 是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004104 日。浏览器

Nginx 特色是占有内存少,并发能力强。服务器

事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好,通常来讲,若是咱们在项目中引入了 Nginx ,咱们的项目架构多是这样:架构

在这样的架构中 , Nginx 所表明的角色叫作负载均衡服务器或者反向代理服务器,全部请求首先到达 Nginx 上,再由 Nginx 根据提早配置好的转发规则,将客户端发来的请求转发到某一个 Tomcat 上去。并发

那么这里涉及到两个概念:负载均衡

  • 负载均衡服务器

就是进行请求转发,下降某一个服务器的压力。负载均衡策略不少,也有不少层,对于一些大型网站基本上从 DNS 就开始负载均衡,负载均衡有硬件和软件之分,各自表明分别是 F5Nginx (目前 Nginx 已经被 F5 收购),早些年,也可使用 Apache 来作负载均衡,可是效率不如 Nginx ,因此如今主流方案是 Nginx微服务

  • 反向代理服务器:

另外一个概念是反向代理服务器,得先说正向代理,看下面一张图:高并发

在这个过程当中,Google 并不知道真正访问它的客户端是谁,它只知道这个中间服务器在访问它。所以,这里的代理,其实是中间服务器代理了客户端,这种代理叫作正向代理。性能

那么什么是反向代理呢?看下面一张图:

在这个过程当中,10086 这个号码至关因而一个代理,真正提供服务的,是话务员,可是对于客户来讲,他不关心究竟是哪个话务员提供的服务,他只须要记得 10086 这个号码就好了。

全部的请求打到 10086 上,再由 10086 将请求转发给某一个话务员去处理。所以,在这里,10086 就至关因而一个代理,只不过它代理的是话务员而不是客户端,这种代理称之为反向代理。

Nginx 的优点

在 Java 开发中,Nginx 有着很是普遍的使用,随便举几点:

  1. 使用 Nginx 作静态资源服务器:Java 中的资源能够分为动态和静态,动态须要通过 Tomcat 解析以后,才能返回给浏览器,例如 JSP 页面、Freemarker 页面、控制器返回的 JSON 数据等,都算做动态资源,动态资源通过了 Tomcat 处理,速度必然下降。对于静态资源,例如图片、HTML、JS、CSS 等资源,这种资源能够没必要通过 Tomcat 解析,当客户端请求这些资源时,之间将资源返回给客户端就好了。此时,可使用 Nginx 搭建静态资源服务器,将静态资源直接返回给客户端。
  2. 使用 Nginx 作负载均衡服务器,不管是使用 Dubbo 仍是 Spirng Cloud ,除了使用各自自带的负载均衡策略以外,也均可以使用 Nginx 作负载均衡服务器。
  3. 支持高并发、内存消耗少、成本低廉、配置简单、运行稳定等。

Nginx 安装:

因为基本上都是在 Linux 上使用 Nginx,所以松哥这里主要向你们展现 CentOS 7 安装 Nginx:

  1. 首先下载 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 干货!

相关文章
相关标签/搜索