nginx反向代理理解
实际开发中,会有不同的环境:
- 开发环境:自己的电脑
- 测试环境:提供给测试人员使用的环境
- 预发布环境:数据是和生成环境的数据一致,运行最新的项目代码进去测试
- 生产环境:项目最终发布上线的环境
如果不同环境使用不同的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反向代理理解的更多相关文章
- Nginx反向代理理解误区之proxy_cookie_domain
基本内容 Nginx做反向代理的时候,我们一般习惯添加proxy_cookie_domain配置,来做cookie的域名转换,比如 ... location /api { proxy_pass htt ...
- nginx反向代理跨域基本配置与常见误区
最近公司前后端分离,前端独立提供页面和静态服务很自然的就想到了用nginx去做静态服务器.同时由于跨域了,就想利用nginx的反向代理去处理一下跨域,但是在解决问题的同时,发现网上有些方案的确是存在一 ...
- Nginx反向代理,负载均衡,redis session共享,keepalived高可用
相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此 ...
- Nginx反向代理部署指南
一.反向代理 我们都知道,80端口是web服务的默认端口,其他主机访问web服务器也是默认和80端口进行web交互,而一台服务器也只有一个80端口,这是约定俗成的标准. 我们来看下面两个场景: 1.服 ...
- Linux 下的 Nginx 反向代理配置.
最近实践中遇到了需要利用 nginx 进行反向代理服务器请求的需求,以前没怎么碰触过,因此花了1个多小时,快速阅览了一下nginx官网在反向代理服务中给出的基本定义: 说实话,官网给予的定义是精准的, ...
- Nginx 反向代理、负载均衡
## Nginx 反向代理. (一)简介 一.什么是代理服务器 客户机原本发送给服务器的请求,不会直接发送给服务器,而是先发送给代理服务器:经过代理服务器处理后转发给服务器:服务器数据处理后转回给代理 ...
- CentOS 7 学习(二) 配置Nginx反向代理
CentOS 7 学习(二) 配置Nginx反向代理 Nginx可以通过php-fpm来运行PHP程序,也可以转向apache,让apache调用php程序来运行. 不过对于Nginx来说,其反向代理 ...
- Nginx(三)------nginx 反向代理
Nginx 服务器的反向代理服务是其最常用的重要功能,由反向代理服务也可以衍生出很多与此相关的 Nginx 服务器重要功能,比如后面会介绍的负载均衡.本篇博客我们会先介绍 Nginx 的反向代理,当然 ...
- nginx反向代理-解决前端跨域问题
1.定义 跨域是指a页面想获取b页面资源,如果a.b页面的协议.域名.端口.子域名不同,所进行的访问行动都是跨域的,而浏览器为了安全问题一般都限制了跨域访问,也就是不允许跨域请求资源.注意:跨域限制访 ...
随机推荐
- Memcached 缓存系统简介
memcached官网:http://memcached.org/ What is Memcached? Memcached是一个自由开源的,高性能,高并发,分布式内存对象缓存系统. Memcache ...
- 洛谷P4719 【模板】"动态 DP"&动态树分治
[模板]"动态 DP"&动态树分治 第一道动态\(DP\)的题,只会用树剖来做,全局平衡二叉树什么的就以后再学吧 所谓动态\(DP\),就是在原本的\(DP\)求解的问题上 ...
- SCZ 20170812 T2 MFS
题面照例十分暴力,我再次重写一下吧-- 题目描述 有\(n\)个数构成的数列\(A\)元素为\(a_i\),你要构造一个数列\(B\),元素为\(b_i\),使得满足\(b_{i}>0,a_{i ...
- AtCoder Beginner Contest 168
比赛链接:https://atcoder.jp/contests/abc168/tasks A - ∴ (Therefore) 题意 给出一个由数字组成的字符串 $s$,要求如下: 如果 $s$ 以 ...
- python+selenium+bs4爬取百度文库内文字 && selenium 元素可以定位到,但是无法点击问题 && pycharm多行缩进、左移
先说一下可能用到的一些python知识 一.python中使用的是unicode编码, 而日常文本使用各类编码如:gbk utf-8 等等所以使用python进行文字读写操作时候经常会出现各种错误, ...
- Codeforces Round #667 (Div. 3) D. Decrease the Sum of Digits (贪心)
题意:给你一个正整数\(n\),每次可以对\(n\)加一,问最少操作多少次是的\(n\)的所有位数之和不大于\(s\). 题解:\(n\)的某个位置上的数进位,意味这后面的位置都可以被更新为\(0\) ...
- 7.Topic交换机之模拟文件分类
标题 : 7.Topic交换机之模拟文件分类 目录 : RabbitMQ 序号 : 7 Password = "123456", AutomaticRecoveryEnabled ...
- 解决宝塔面板没有命令行问题 && 查看宝塔面板项目环境
# 宝塔面板没有命令行,无法查看错误输出 利用ssh.比如xshell,MObaxtern .输入ip,username,password就可以进入服务器的命令行. # 查看项目的环境 服务器默认的p ...
- 输入函数input()、运算符
一.input()函数的基本使用 present = input('大圣想要什么礼物') 作用:接受来自用户的输入 返回值类型:输入值的类型为str 值的存储:使用 = 对输入的值进行存储 name= ...
- React Portal All In One
React Portal All In One react multi root https://reactjs.org/docs/portals.html https://zh-hans.react ...