一篇文章带你了解轻量级Web服务器——Nginx简单入门( 二 )

Nginx具体应用Nginx具有三方面应用,下面我们将一一讲解
Nginx部署动态资源Nginx可以作为静态web服务器来部署静态资源 。
静态资源指在服务端真实存在并且能够直接展示的一些文件,比如常见的htm页面、Css文件、 js文件、 图片、视频等资源 。
我们可以直接将静态资源放置在Nginx的html文件夹下即可完成部署,同时Nginx处理静态资源的能力甚至相比于Tomcat来说更加高效
那么Nginx为什么能够自动配置静态资源呢?
# 主要依赖于我们的conf配置文件中的http块中的Server块 # Server块server {# 3.2.1 Server全局块listen80; # 表示监听端口(即我们访问网页的端口号,本机查询为192.168.44.128:80)server_namelocalhost; # 端口名称(无所谓命名 , 一般是我们的域名)# 3.2.2 location块location / {roothtml; # 静态资源来源(设置在html文件夹下,所以我们查找静态资源会在html文件夹下查找)indexindex.html index.htm; # 默认主页,即访问192.168.44.128:80时出现的页面}error_page500 502 503 504/50x.html;location = /50x.html {roothtml;} }Nginx进行反向代理在接触反向代理之前我们先来讲解正向代理:

  • 正向代理是一个位于客户端和原始服务器(origin server)之间的服务器
  • 客户端向代理发送一个请求并指定目标(原始服务器) , 然后代理向原始服务器转交请求并将获得的内容返回给客户端 。
其正向代理的主要功能:
  • 正向代理的典型用途是为在防火墙内的局域网客户端提供访问internet的途径 。
其正向代理的主要特点:
  • 正向代理一般是在客户端设置代理服务器,通过代理服务器转发请求,最终访问到目标服务器 。
正向代理图:
一篇文章带你了解轻量级Web服务器——Nginx简单入门

文章插图
然后我们再来介绍反向代理:
  • 反向代理也是是一个位于客户端和原始服务器(origin server)之间的服务器
  • 但是对于用户而言,反向代理服务器就相当于目标服务器,即用于直接访问反向代理服务器就可以获得目标服务器的资源
  • 用户不需要知道目标服务器的地址,也无需在用户端做任何事顶,反向代理服务器会将用户的请求转发给目标服务器并给出反馈
其反向代理的主要功能:
  • 官方可能拥有很多资源的入口,反向代理服务器将作为统一的入口用来管理服务器
  • 官方的服务器大部分都在内网里 , 我们的正常访问是无法访问成功的,因此需要借助反向代理服务器来进行访问
其反向代理的主要特点:
  • 反向代理一般是在服务端设置代理服务器,客户端通过代理服务器转发请求,最终访问到目标服务器 。
反向代理图:
一篇文章带你了解轻量级Web服务器——Nginx简单入门

文章插图
最后我们简单介绍一下如何配置反向代理:
# 我们同样来修改配置文件vim /usr/local/nignx/conf/nignx.conf# 进入后设置server块 # Server块server {# 3.2.1 Server全局块listen82; # 表示监听端口(即我们访问网页的端口号,本机查询为192.168.44.128:82)server_namelocalhost; # 端口名称(无所谓命名,一般是我们的域名)# 3.2.2 location块location / {proxy_pass http://192.168.44.129:8080; #我们将该请求转移到http://192.168.44.129:8080指定服务中} }Nginx实现负载均衡我们首先来简单介绍一下负载均衡:
  • 早期网站流量和业务功能相对简单 , 单台服务器可以满足基本需求
  • 后期业务量逐渐增大,我们就需要采用多台服务器组成应用集群 , 进行性能的水平拓展以及避免单点故障出现
我们来简单解释两个概念:
  • 负载均衡器:将用户请求根据对应的负载均衡算法分发到应用集群中的一台服务器进行处理
  • 应用集群:将一个应用部署到多台机器上,形成应用集群,接受负载均衡器分发的请求,进行业务处理并做出反馈
负载均衡图:
一篇文章带你了解轻量级Web服务器——Nginx简单入门

文章插图
最后我们简单介绍一下如何配置负载均衡:
# 我们同样来修改配置文件vim /usr/local/nignx/conf/nignx.conf# 首先我们需要在http中配置应用集群http { # 3.1 http全局块(配置应用集群)includemime.types;default_typeapplication/octet-stream;sendfileon;keepalive_timeout65;upstream targetserver{ # upstream表示定义应用集群,targetserver为名称server 192.168.44.129:8080; # server表示配置其转发服务器端口,192.168.44.129:8080为自己配置即可server 192.168.44.129:8081; # server表示配置其转发服务器端口,192.168.44.129:8081为自己配置即可} # 3.2 Server块server {# 3.2.1 Server全局块listen8080; # 我们访问时采用192.168.44.128server_namelocalhost;# 3.2.2 location块location / {proxy_pass targetserver; #我们将该请求转移到targetserver应用集群中去}}

推荐阅读