Nginx初步认识
Nginx介绍
Nginx是一款轻量级的web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。
其特点是占有内存少,并发能力强。事实上nginx的并发能力在同类型的网页服务器中表现较好。
中国大陆使用nginx的网站有: 百度、京东新浪、网易、腾讯、淘宝等。
Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文: Pam6nep)开发的。
第一个公开版本0.1.0发布于1994年19月4日。
Nginx目录结构
初步认识一下Nginx的目录结构:
重点目录/文件:
conf/nginx.conf----nginx配置文件。
html----存放静态文件 (html、CSS、Js等)。
logs----日志目录,存放日志文件。
sbin/nginx----二进制文件,用于启动、停止Nginx服务,里面存放了一些脚本文件。
技巧
安装tree命令
yum -y install tree
注:实现树状结构方式查看目录结构,清晰了然。(Windows中也有tree命令,不过其只展示目录结构,文件不展示)
Nginx配置文件结构
整体结构介绍
Nginx配置文件(conf/nginx.conf)整体分为三部分:
-
全局块—和Nginx运行相关的全局配置。
-
events块—和网络连接相关的配置。
-
http块—代理、缓存、日志记录、虚拟主机配置
-
http全局块
-
Server块
-
Server全局块
-
location块
-
-
注意: http块中可以配置多个Server块,每个Server块中可以配置多个location块。
例图解
Nginx具体应用
部署静态资源
Nginx可以作为静态web服务器来部署静态资源。静态资源指在服务端真实存在并且能够直接展示的一些文件。
比如常见的html页面、css文件、js文件、图片、视频等资源。
相对于Tomcat,Nginx处理静态资源的能力更加高效。
所以在生产环境下,一般都会将静态资源部署到Nginx中。
将静态资源部署到Nginx非常简单,只需要将文件复制到Nginx安装目录下的html目录中即可。
反向代理
概念引出
正向代理
是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理一般是在客户端设置代理服务器,通过代理服务器转发请求,最终访问到目标服务器。
反向代理
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户通过直接访问反向代理服务器就可以获得目标服务器的资源,反向代理服务器负责将请求转发给目标服务器。用户不需要知道目标服务器的地址,也无须在用户端作任何设定。
注:
通俗来讲就是正向是指给客户端做代理,反向是指给服务器做代理;
一个是基于客户端的,一个是基于服务器的;
正向代理是客户端来设置的,反向代理是为服务器来设置的;
正向代理是帮助客户端访问服务器的,而反向代理是帮助服务器提供服务的。
举个例子:
你买东西的时候找代理人帮你去买就是正向代理,找代理商卖给你东西就是反向代理,
厂商就是web服务器,代理商就是nginx反向代理服务器。
负载均衡
简介
早期的网站流量和业务功能都比较简单,单台服务器就可以满足基本需求,但是随着互联网的发展,业务流量越来越大。
并且业务逻辑也越来越复杂,单台服务器的性能及单点故障问题就凸显出来了,因此需要多台服务器组成应用集群进行性能的水平扩展以及避免单点故障出现。
应用集群:
将同一应用部署到多台机器上,组成应用集群,接收负载均衡器分发的请求,进行业务处理并返回响应数据。
负载均衡器:
将用户请求根据对应的负载均衡算法分发到应用集群中的一台服务器进行处理。
配置负载均衡案例
负载均衡策略
名称 | 说明 |
---|---|
轮询 | 默认方式 |
weight | 权重方式,默认为1,权重越高,被分配的客户端请求就越多 |
ip_hash | 依据ip分配方式,这样每个访客可以固定访问一个后端服务 |
least_conn | 依据最少连接方式,把请求优先分配给连接数少的后端服务 |
url_hash | 依据url分配方式,这样相同的url会被分配到同一个后端服务 |
fair | 依据响应时间方式,响应时间短的服务将会被优先分配 |
注:
负载均衡基于反向代理的特性来实现。