Nginx反向正向代理
一、Nginx简介
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
二、Nginx特点
- nginx是非常优秀的反向代理服务器.
- 占用内存少 不到2M tomcat服务器占用多大内存 200M左右
- 并发(负载)能力强 3-5万次/秒
- tomcat服务器并发能力 250-500次/秒
- 调优之后可以实现1000次/秒
- nginx可以当作负载均衡服务器使用.
三、反向代理机制
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。
特点:
- 反向代理服务器位于用户和服务器之间.
- 用户访问反向代理服务器,就可以获取真实的资源.
- 反向代理机制 用户无需了解真实的服务器信息.
- 反向代理保护了服务器端信息,也称之为服务器端代理
图示:
我们直接访问RB服务器访问不到或者速度特别慢,这时我们用台湾地区的代理服务器,由代理服务器去访问RB的服务器获得资源返回给我们。
四、正向代理
有反向代理那么就有正向代理的存在,正向代理,意思是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。
特点:
- 正向代理服务器位于用户和服务器之间.
- 用户发起请求时,非常明确自己访问的服务器到底是谁
- 真实的服务器不清楚真实的用户是谁.保护了用户的信息.
- 也称之为客户端代理.
图示:
生活中最常用的路由器就是正向代理的体现,通过路由器访问原始目标服务器,把获取到的信息进行返回,服务器不知到用户的真实信息。
五、正向与反向
它们之间一般都是配合使用的,不存在谁多谁少之分用户每一次请求都包含了正向代理和反向代理.
正向代理一般适用于网络的通信.
反向代理一般适用于服务器获取信息.
六、Nginx的使用
前面介绍完了Nginx和反向代理的知识,下面我们来实践一下!
开启:下载好后进入目录中点击nginx.exe开启Nginx服务
注意:开启速度非常快,点击即开启
查看:进入任务管理器打开详细信息找到服务,在windows中nginx服务每次点击启动之后,都会生成2个进程项,但是在windows中nginx只能启动一次.
进程项1: nginx主要进程信息.
进程项2: nginx的守护进程 主要的任务防止主进程意外关闭.
关闭nginx 应该先关闭守护(内存小的)再关闭主进程(内存大的).
注意:nginx默认占用80端口,开启前应释放80端口的资源
访问本地路径出现如下页面则开启成功
Nginx命令:进入到目录下cmd执行
- 启动命令 start nginx
- 重启命令 nginx -s reload
- 关闭命令 nginx -s stop
注意:Nginx启动时不会报错,启动之后需要进行重启查看是否配置错误
编写配置文件(conf)
- nginx反向代理需要http协议支持.
- server 每个反向代理服务都是一个server.
- listen 关键字 默认监听80端口.
- server_name 根据指定的域名进行反向代理
- location 反向代理时拦截的策略 / 所有的请求
- root 代表反向代理的是一个目录
- index 默认访问的页面
http {server {listen 80;server_name localhost;location / {root html;index index.html index.htm;}}
}
具体业务:
上个项目我们在点击网络地址时可以访问到我们磁盘里的图片,这就是反向代理机制
步骤:
- 用户通过域名访问真实的服务器.
- nginx根据自身的配置进行拦截,根据配置文件将域名http://image.jt.com转化为具体的磁盘地址G盘的目录下
- 根据磁盘地址访问真实的服务器资源.
- 服务器将数据交给nginx,之后nginx将数据返回给用户.至此实现了反向代理.
进行conf配置:
server {listen 80;server_name image.jt.com;location / {root G:/images;}}
具体流程:
由于用户访问的是真实的外网,而我们又没有进行域名的登记,所以现在还是访问错误,这是我们就需要在Windows操作系统自带的方便测试的hosts文件里进行配置域名与本机的映射,注:该映射只对本机有效。
hosts文件:
地址:C:\Windows\System32\drivers\etc\hosts
每个电脑都有,切勿随意删除
添加映射:127.0.0.1 image.jt.com #映射到本机IP
到这里图片可以通过输入我们设定的网址访问我们本地的磁盘并完成回显功能了
以上业务只是简单的一个Demo,我们可以尝试把项目的所有访问本地换成网址然后用Nginx进行反向代理
Nginx实现Tomct集群部署
集群部署
upstream tomcats{server 127.0.0.1:8091;server 127.0.0.1:8092;}
配置后台服务器server{listen 80;server_name manage.jt.com;location / {#代理的是一个请求路径proxy_pass http://tomcats;}}
Nginx负载均衡策略
1.轮询策略:tomcat服务器依次访问
upstream tomcats {server 127.0.0.1:8091;server 127.0.0.1:8092;}
2.权重策略:根据权重设定,分配网络请求到不同的服务器中. 值越大访问越多.
upstream tomcats {server 127.0.0.1:8091 weight=10;server 127.0.0.1:8092 weight=1;}
3.IPHASH:
使用场景:
- 让用户与服务器绑定.则可以使用ip_hash策略
- 方便进行压力测试.
- 某些用户的数据保存到服务器的Session中时,需要绑定数据.
- 公司特殊业务场景可能用到iphash.
upstream tomcats {ip_hash;server 127.0.0.1:8091;server 127.0.0.1:8092;}
说明:只要访问用户的IP不变,那么他访问的永远都是同一个端口
前端打包:
前端代码都是一些静态资源,我们可以将它们打包加入了到Nginx里,通过配置nginx.conf文件访问前端的资源。
总体业务流程图:
用户访问前端经过hosts映射到了本机,通过nginx反向代理访问到了前端资源,前端做出操作访问nginx代理到了后端,后端有两台服务器进行使用。
Nginx到这里就讲完了,下一篇讲Linux常用命令及项目的发布。
满怀希望就会所向披靡!!!
Nginx反向正向代理相关推荐
- nginx和正向代理反向代理
曾经对于nginx和正向代理反向代理,只闻其名,不知其意.在昨天参加师哥师姐的分享会的时候,在师哥师姐深入的讨论之中,了解了这个概念 首先介绍一下基本概念吧: Nginx (engine x) 是一个 ...
- Nginx服务器---正向代理
Nginx服务器-----正向代理 文章目录 Nginx服务器-----正向代理 前言 一.nginx是什么? 二.代理服务 1.什么是代理呢?下面一张图了解一下 2.正向代理 2.1什么是正向代理呢 ...
- Nginx 配置正向代理
Nginx 配置正向代理 之前一直使用 squid 进行正向代理配置,今天尝试采用 nginx 进行正向代理配置. nginx本身是不支持https协议请求转发,为了让nginx能达到这一效果需要借助 ...
- Nginx (一) Nginx介绍 正向代理 反向代理 及配置
目录 介绍Nginx Nginx处理高并发 正向代理 正向代理配置 反向代理 反向代理配置 介绍Nginx Nginx是一款自由的.开源的.高性能的HTTP服务器和 反向代理 服务器:同时也是一个IM ...
- Nginx:正向代理与反向代理
什么是Nginx? Nginx 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务. Nginx是一款轻量级的WEB服务器/反向代理服务器及电子邮件(IMAP ...
- Nginx的正向代理和反向代理
Nginx 1. nginx正向/方向代理 1.1nginx反向代理 反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得 ...
- Nginx的正向代理与反向代理
正向代理 应用在客户端,决定哪台客户机向外发出用户请求 反向代理 应用在服务器端,决定哪台服务器处理用户请求 区别 正向代理,代理的是客户端 反向代理,代理的是服务器
- nginx系列:nginx反向缓存代理详解
小生博客:http://xsboke.blog.51cto.com 如果有疑问,请点击此处,然后发表评论交流,作者会及时回复. -------谢谢您的参考,如有疑问,欢迎交流 一. 代理和nginx相 ...
- nginx做正向代理
Nginx常用来做反向代理,但是作为正向代理大家有没有试过呢? Nginx配置如下: server{ resolver x.x.x.x; listen 82; ...
- nginx做正向代理http,内网主机yum安装外网资源
一.概念解释(基本解释详细可以百度) 正向代理:内网通过nginx请求外部url 反向代理:外部通过nginx请求内部服务器 二.配置简图 192.168.1.11类似内网,不能直接访问www.abc ...
最新文章
- java 泛型对象实例化_在java中实例化泛型类型
- Mac OS X 在Finder新建文本文件
- 笔记本电脑自带麦克风吗_小米电视可以唱歌吗
- 任务调度之Elastic-Job1
- bzoj3550: [ONTAK2010]Vacation1283: 序列
- PHP中0、空、null和false的总结
- Android Http请求失败解决方法
- Eclipse完美安装Emmet插件
- 线性代数(同济) 第六版 复习
- 文图片处理技巧——透明块
- 两阶段最小二乘法原理_两阶段最小二乘法第一阶段为什么加入原模型外生变量...
- B.FRIENDit壁虎忍者品牌故事
- 格式化U盘为FAT32
- 北京消费扶贫双创中心启用 2000余种特色产品长期展销
- python3 下ascii与 str的转换
- 总结了一下小半辈子发现三点:
- 基于python的李代数实现方法
- 各种坐标系下坐标转换关系
- 超简单集成HMS ML Kit 实现parental control
- MySQL--查询操作
热门文章
- python hist函数_Python Pandas.DataFrame.hist()用法及代码示例
- python hist bins_python – matplotlib中的Hist:Bins不居中,轴上的比例不正确
- 最早的即时通讯软件哪一个,你知道吗?
- 一文带你搞懂Python中的文件操作
- 包引入中,在包名前使用下划线“_”
- 读懂以太坊的客户端多样性,为何如此重要?
- MIUI12系统如何刷入开发版获得ROOT权限
- 神调侃!程序员专属成长书单,我比女朋友更了解你!
- 拉绳位移传感器的原理
- updating mysql.pid_启动mysql ERROR! The server quit without updating PID file