Nginx【常见知识点速查】
文章更新时间:2020/04/10
一、简介
定义:Nginx是一个高性能的HTTP和反向代理web服务器
作用:
- 反向代理
- 正向代理
- 负载均衡
- HTTP静态资源服务器(动静分离)
二、正向代理与反向代理简介
正向代理
类似我们想要访问国外的Google服务器,但是由于访问限制,我们需要找一个代理去访问。换句话说,客户端明确知道要访问的服务器的地址,客户端把请求发送给代理,代理转发给服务器,服务器把响应传给代理,最后代理把响应传给客户端。我们可以看到客户端知道服务器是谁,但是服务器并不知道客户端是谁,这就是正向代理,隐藏了客户端的真实信息。
反向代理
类似我们访问淘宝,由于访问量巨大,淘宝会使用许多台服务器(就是分布式服务器)来支持,但是每个客户端的请求到底由哪一台服务器来响应,我们需要一个代理来决定。换句话说,客户端并不知道要把请求发送给哪一台服务器,但是知道发送给哪一个代理,然后代理依据规则(响应时间,负载均衡等)决定把请求转发给哪一台服务器。可以看到,客户端并不知道他访问的服务器是谁,这就是反向代理,隐藏了服务器的真实信息。
三、反向代理
概念: tomcat集群一般使用的都是内网IP,不适合直接被外部访问,Nginx起到一个反向代理的作用,对于客户端来说并不知道访问的是nginx代理还是具体的服务器。
作用: 隐藏真实的访问ip地址。外界访问的最多也就是公网的ip,但是具体tomcat在那个ip是不知道的,这样就能减少tomcat被攻击,提高了服务器的安全性。 (详细看这里)
常用于:保护内网服务器安全、前后端分离的项目实现跨域等场景

举个例子
比如现在比较流行前后端分离的项目,前端页面用的是vue,服务器端用的是spring boot整合的一些框架【根据项目大小也许选型不同】,那么一般我们会先启动服务器后端的代码,然后再单独启动vue工程,那么就会存在一个问题:


那么这个时候我们再去启动前端的vue工程:

那么vue页面在向后端服务发送请求的时候,就会存在一个资源跨域的问题,在本地开发我们可以使用webPack配置代理来实现跨域请求,那么在正式环境,也就是生产服务器上,我们应该利用nginx来替我们完成这一工作:

配置好了以后,重启nginx,通过域名访问页面,可以发现对服务端的请求已经正常发出,并被nginx进行解析转译,成功调用服务端并返回

到此,一个nginx实现反向代理的简单应用就介绍完啦~~~
四、正向代理
概念: 客户端明确知道需要访问的地址,但是服务端因ip限制或无法直接访问时,需要在访问过程中加入代理服务器来对客户端的请求进行转发,此时原始服务器是不知道客户端的信息的。
作用:
- 访问原来无法访问的资源,如Google、FaceBook等(我们用的vpn其实也是正向代理的一种应用)
- 可以做资源缓存,加速访问资源(如静态文件服务器用nginx来代理,实现动静分离)
- 对客户端访问授权,上网进行认证
- 代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息(行为分析)
五、负载均衡
概念: 当服务器存在多台时,我们可以使用Nginx做负载均衡,降低服务器并发访问时的压力
负载方式:RR(默认)、权重、ip_hash、url_hash(需要第三方插件支持)、fair(需要第三方插件支持)。详细配置看这里
PS:ip_hash主要解决集群部署环境下的session共享问题(相同ip地址的客户端总会访问到同一个后端服务器,除非服务器宕机被负载到另外一台机器上)
六、HTTP静态资源服务器(动静分离)
概念:把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作。
七、配置location(请求分发)

参考文章:
Nginx【常见知识点速查】的更多相关文章
- Git【常见知识点速查】
文章更新时间:2020/06/17 一.基础知识点解析 Git工作流程 以上包括一些简单而常用的命令,但是先不关心这些,先来了解下面这4个专有名词. Workspace:工作区 Index / Sta ...
- Maven【常见知识点速查】
文章更新时间:2020/04/10 一.为什么使用Maven这样的构建工具[why] ① 一个项目就是一个工程 如果项目非常庞大,就不适合使用package来划分模块,最好是每一个模块对应一个工程,利 ...
- Java基础一篇过(八)常见异常速查
一.引言 开发过程中可能会遇到各种各样的异常,这里还是汇总一些比较典型的异常,有些比较直观的异常如空指针这种就不写了,此文可作为异常速查用. 二.异常大军正在来袭~ IllegalArgumentEx ...
- Github标星3K+,热榜第三,一网打尽数据科学速查表
这几天,Github上的趋势榜一天一换. 这次一个名为 Data-Science--Cheat-Sheet 的项目突然蹿到了第三名. 仔细一看,确实干货满满.来,让文摘菌推荐一下~ 这个项目本质上是备 ...
- python3 速查参考- python基础 8 -> 面向对象基础:类的创建与基础使用,类属性,property、类方法、静态方法、常用知识点概念(封装、继承等等见下一章)
基础概念 1.速查笔记: #-- 最普通的类 class C1(C2, C3): spam = 42 # 数据属性 def __init__(self, name): # 函数属性:构造函数 self ...
- Java API 快速速查宝典
Java API 快速速查宝典 作者:明日科技,陈丹丹,李银龙,王国辉 著 出版社:人民邮电出版社 出版时间:2012年5月 Java编程的最基本要素是方法.属性和事件,掌握这些要素,就掌握了解决实际 ...
- python 下的数据结构与算法---2:大O符号与常用算法和数据结构的复杂度速查表
目录: 一:大O记法 二:各函数高阶比较 三:常用算法和数据结构的复杂度速查表 四:常见的logn是怎么来的 一:大O记法 算法复杂度记法有很多种,其中最常用的就是Big O notation(大O记 ...
- 可能是史上最全的机器学习和Python(包括数学)速查表
新手学习机器学习很难,就是收集资料也很费劲.所幸Robbie Allen从不同来源收集了目前最全的有关机器学习.Python和相关数学知识的速查表大全.强烈建议收藏! 机器学习有很多方面. 当我开始刷 ...
- liunx速查
文件和目录 Linux 主要目录速查表 /:根目录,一般根目录下只存放目录,在 linux 下有且只有一个根目录,所有的东西都是从这里开始 当在终端里输入 /home,其实是在告诉电脑,先从 /(根目 ...
随机推荐
- sqlalchemy怎么order_by降序/升序并取第一条数据
原文链接:https://blog.csdn.net/mark4541437/article/details/103755721 sqlalchemy怎么order_by降序/升序并取第一条数据 fr ...
- RabbitMQ set password
问题: -- ::09.387 ERROR oslo.messaging._drivers.impl_rabbit [req-51faf017-4f1f-4a24-ab79-624b302b839b ...
- Hello,Vue
Vue版本 Vue完整版 有编译器compiler,体积大功能多,可以直接把html字符串变成DOM节点 视图,此处为html字符串,写在index.html里或者写在new Vue构造选项templ ...
- Json解析方式汇总 excel vba
一. 这种方式比较复杂,因为office版本的原因,所以要加其它函数 Private Function parseScript(strJson As String) Dim objJson As Ob ...
- C语言中存储多个字符串的两种方式
C语言中存储多个字符串的两种方式 方式一 二维字符串数组 声明: char name[][] = { "Justinian", "Momo", " ...
- 利用Python爬虫刷新某网站访问量
前言:前一段时间看到有博友写了爬虫去刷新博客访问量一篇文章,当时还觉得蛮有意思的,就保存了一下,但是当我昨天准备复现的时候居然发现文章404了.所以本篇文章仅供学习交流,严禁用于商业用途 很多人学习p ...
- oeasy教您玩转linux010109clear清屏
回忆上次内容 上次讲了灵魂三问 whatis whereis which 通过这三个问题,可以对命令基本了解,我们来试一下!!
- 【HttpRunner v3.x】笔记—6. 测试用例-teststeps-RunRequest
之前我们了解了config里的各项参数,今天来了解另一个重要部分--teststeps,在这之前,先看看测试用例的分层模型. 一.测试用例分层模型 一个testcase里(就是一个pytest格式的P ...
- windows下TOMCAT对内存使用的设置
1.打开TOMCAT目录 E:\备份\apache-tomcat-8.5.50-windows-x64\apache-tomcat-8.5.50\bin catalina.bat----------- ...
- 免费获取 IntelliJ IDEA 激活码的 6 种方式!
你还在满世界找 IntelliJ IDEA 激活码? 破解的不稳定,也是违法的,有安全风险还不一定,不建议大家使用来历不明的补丁. 今天栈长就分享免费获取 IntelliJ IDEA 的 6 种方式, ...