实际开发中,会有不同的环境:

- 开发环境:自己的电脑
- 测试环境:提供给测试人员使用的环境
- 预发布环境:数据是和生成环境的数据一致,运行最新的项目代码进去测试
- 生产环境:项目最终发布上线的环境

如果不同环境使用不同的ip去访问,可能会出现一些问题。为了保证所有环境的一致,在各种环境下都使用域名来访问。

一个域名一定会被解析为一个或多个ip。这一般会包含两步:

- 本地域名解析

浏览器会首先在本机的hosts文件中查找域名映射的IP地址,如果查找到就返回IP ,没找到则进行域名服务器解析,一般本地解析都会失败,因为默认这个文件是空的。

- Windows下的hosts文件地址:`C:/Windows/System32/drivers/etc/hosts`
- Linux下的hosts文件所在路径: `/etc/hosts`

样式:

```shell
# My hosts
127.0.0.1 localhost
0.0.0.0 account.jetbrains.com
127.0.0.1 www.xmind.net
```

- 域名服务器解析

本地解析失败,才会进行域名服务器解析,域名服务器就是网络中的一台计算机,里面记录了所有注册备案的域名和ip映射关系,一般只要域名是正确的,并且备案通过,一定能找到。

虽然域名解决了,但是现在如果我们要访问,还得自己加上端口:`http://api.cms.com:9999/swagger-ui.html`。

项目一般都是直接域名访问:`http://api.cms.com:9999/swagger-ui.html`

这种情况下端口默认是80,如何才能把请求转移到9998端口呢?

这里就要用到:Nginx 它是一个高性能的web和反向代理服务器

nginx可以作为web服务器,但更多的时候,我们把它作为网关,因为它具备网关必备的功能:

==反向代理,负载均衡,动态路由,请求过滤==
外网服务器:是让所有人访问的服务器
内网服务器:必须连入内部的网络才能访问内部的服务器

前端会发很多请求给nginx,也就是说nginx会负载很多请求,此时nginx就成为网关。
正向代理:当你访问谷歌时,无法访问,你会通过翻墙去访问,这实际上是要先连接到vpn的服务器(代理服务器),然后vpn的服务器再去连接到谷歌的服务器,此时你才能访问到。本质上就是用户直接访问谷歌服务器。但是谷歌服务器只知道是代理服务器发出的请求,他不知道具体是哪个用户发出的。本质上来说代理服务器代理的就是一个个的用户,
---正向代理就是代理客户端,服务端不知道实际发起请求的客户端。
通过客户机的配置,实现让一台服务器代理客户机,客户的所有请求都交给代理服务器处理。
反向代理:
用一台服务器,代理真实服务器,用户访问时,不再是访问真实服务器,而是代理服务器。
---反向代理就是代理服务器
当你要访问内网服务器时 你访问不到,此时就需要通过代理服务器去代理你要访问的内网服务器,你只需要访问代理服务器即可访问内网服务器。
当我们要访问的内网服务器ip+端口为172.0.0.3:9999时 那么我们可以将这个内网服务器代理在代理服务器上 代理服务器的ip+端口为172.0.0.3:80 80可以省略, 当你要访问内网服务器时,先访问代理服务器,代理服务器会将其转发到内网服务器上,而80端口可以省略就解决了隐藏端口的效果。

正向代理:访问的服务器不知道是哪个用户在访问,只知道是哪个代理服务器在访问
反向代理:用户不知道具体要访问的是哪个服务器(当然在nginx中可以通过配置特定的域名来确定),只知道访问的哪个代理服务器

nginx反向代理理解的更多相关文章

  1. Nginx反向代理理解误区之proxy_cookie_domain

    基本内容 Nginx做反向代理的时候,我们一般习惯添加proxy_cookie_domain配置,来做cookie的域名转换,比如 ... location /api { proxy_pass htt ...

  2. nginx反向代理跨域基本配置与常见误区

    最近公司前后端分离,前端独立提供页面和静态服务很自然的就想到了用nginx去做静态服务器.同时由于跨域了,就想利用nginx的反向代理去处理一下跨域,但是在解决问题的同时,发现网上有些方案的确是存在一 ...

  3. Nginx反向代理,负载均衡,redis session共享,keepalived高可用

    相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此 ...

  4. Nginx反向代理部署指南

    一.反向代理 我们都知道,80端口是web服务的默认端口,其他主机访问web服务器也是默认和80端口进行web交互,而一台服务器也只有一个80端口,这是约定俗成的标准. 我们来看下面两个场景: 1.服 ...

  5. Linux 下的 Nginx 反向代理配置.

    最近实践中遇到了需要利用 nginx 进行反向代理服务器请求的需求,以前没怎么碰触过,因此花了1个多小时,快速阅览了一下nginx官网在反向代理服务中给出的基本定义: 说实话,官网给予的定义是精准的, ...

  6. Nginx 反向代理、负载均衡

    ## Nginx 反向代理. (一)简介 一.什么是代理服务器 客户机原本发送给服务器的请求,不会直接发送给服务器,而是先发送给代理服务器:经过代理服务器处理后转发给服务器:服务器数据处理后转回给代理 ...

  7. CentOS 7 学习(二) 配置Nginx反向代理

    CentOS 7 学习(二) 配置Nginx反向代理 Nginx可以通过php-fpm来运行PHP程序,也可以转向apache,让apache调用php程序来运行. 不过对于Nginx来说,其反向代理 ...

  8. Nginx(三)------nginx 反向代理

    Nginx 服务器的反向代理服务是其最常用的重要功能,由反向代理服务也可以衍生出很多与此相关的 Nginx 服务器重要功能,比如后面会介绍的负载均衡.本篇博客我们会先介绍 Nginx 的反向代理,当然 ...

  9. nginx反向代理-解决前端跨域问题

    1.定义 跨域是指a页面想获取b页面资源,如果a.b页面的协议.域名.端口.子域名不同,所进行的访问行动都是跨域的,而浏览器为了安全问题一般都限制了跨域访问,也就是不允许跨域请求资源.注意:跨域限制访 ...

随机推荐

  1. linux yum rpm 和 apt-get dpkg 安装、卸载软件

      一般来说著名的linux系统基本上分两大类:   1.RedHat系列:Redhat.Centos.Fedora等   2.Debian系列:Debian.Ubuntu等   RedHat 系列  ...

  2. three.js cannon.js物理引擎制作一个保龄球游戏

    关于cannon.js我们已经学习了一些知识,今天郭先生就使用已学的cannon.js物理引擎的知识配合three基础知识来做一个保龄球小游戏,效果如下图,在线案例请点击博客原文. 我们需要掌握的技能 ...

  3. Acwing 154 滑动窗口(单调队列)经典模板

    给定一个大小为n≤106n≤106的数组. 有一个大小为k的滑动窗口,它从数组的最左边移动到最右边. 您只能在窗口中看到k个数字. 每次滑动窗口向右移动一个位置. 以下是一个例子: 该数组为[1 3 ...

  4. C++11 Java基本数据类型以及转换

    写在前面: 母语是Java,后来学了C++11,这两个语言的基本数据类型隐式转换不太一样,有点晕,整理一下 整理自网络和书籍,标明出处 C++ 基本数据类型 --http://www.cnblogs. ...

  5. Hyper-V安装CentOS修改分辨率

    grubby --update-kernel=ALL --args="video=hyperv_fb:1600x900" reboot https://blog.csdn.net/ ...

  6. Java容器--2021面试题系列教程(附答案解析)--大白话解读--JavaPub版本

    Java容器--2021面试题系列教程(附答案解析)--大白话解读--JavaPub版本 前言 序言 再高大上的框架,也需要扎实的基础才能玩转,高频面试问题更是基础中的高频实战要点. 适合阅读人群 J ...

  7. 鸟哥的linux私房菜——第十章学习(BASH)

    第十章 BASH 1.0).认识BASH 作用:通过" Shell "可以将我们输入的指令与 Kernel 沟通,好让Kernel 可以控制硬件来正确无误的工作! 应用程序其实是在 ...

  8. Java中集合的有序问题

    Java中的容器主要包括两方面: Collection:List.Set.queue Map:HashMap.treeMap: 一. Collection 1. Set TreeSet:基于红黑树实现 ...

  9. C# LINQ (2)

    Limiting Data -- Take() and Skip() 前面讲了 筛选 和 排序,现在讲 选取皇帝选妃,层层选拔,最后留几个,让他过目,他选一个或者几个作为妃子,大概是这么个意思Take ...

  10. React render algorithm & Fiber vs Stack

    React render algorithm & Fiber vs Stack React 渲染算法 & Fiber vs Stack https://stackoverflow.co ...