什么是反向代理?

我们经常听说反向代理这个概念,既然有反向代理,那么就应该有正向代理,那什么是正向代理呢?如下图所示,所谓的正向代理是指当用户发起请求时无法直接访问到某个网站(比如我们经常要访问外网),需要经过一个中间服务器,用户将请求发给中间服务器,中间服务器可以访问用户想要访问的网站,中间服务器将用户的请求转发给想要访问的网站,然后再将那个网站响应的结果再返回给用户,这就是正向代理。

然后,我们再来看下反向代理,如下图所示,一般情况下,一个大型网站都是由多个服务器组成的,比如某个网站是由三个Tomcat服务器组成的集群对外提供服务,那么当用户发送一个请求后,应该是由哪个Tomcat服务器对外提供服务呢?这就是nginx反向代理所要做的事情,nginx会帮我们自动找一个Tomcat服务器来处理我们的请求,用户根本就不需要关心。

网站入口就是公网ip,公网ip就是你去注册域名时的那个ip地址(一级域名所对应的),只有这一个,因此咱们只能通过这个公网ip(网站入口)进行反向代理。

注意,反向代理服务器决定哪台服务器对外提供服务,而它是不对外提供服务的,它只不过是将请求进行转发。

nginx实现反向代理

下面我就按照下图所描述的来配置反向代理。

因为只是学习反向代理,所以这儿我就只使用了一台虚拟机,而且最好这台虚拟机安装有JDK环境,并且还得提前将Tomcat服务器的压缩包上传上去。

我们现在要配置反向代理,应该至少要有两个Tomcat服务器,所以要创建两个Tomcat服务器实例,如下图所示。

然后将这两个Tomcat服务器的端口号给改一下,使每个Tomcat服务器运行在不同的端口上。我们先到tomcat8081的conf目录下修改server.xml文件,依次修改下面这三段配置中的port属性的值,如下所示。

  1. 将port属性的值由8005改为8006
  2. 将port属性的值由8080改为8081
  3. 将port属性的值由8009改为8010

接着进入tomcat8082的conf目录下修改server.xml文件,依次修改下面这三段配置中的port属性的值,如下所示。

  1. 将port属性的值由8005改为8007
  2. 将port属性的值由8080改为8082
  3. 将port属性的值由8009改为8011

紧接着我们便要在nginx服务器上配置下反向代理了,即在nginx.conf配置文件中添加如下的一段内配置。

从上图中可以看到使用的域名为www.sina.com.cnwww.sohu.com,因此我们需要在hosts文件中添加对应的映射关系,如下图所示(大家根据自己虚拟机的实际ip地址来配置啊)。

nginx的配置文件修改了之后,要想让其生效,应该怎么办呢?我们需要重启服务或者是重新加载配置文件,使用的命令是./nginx -s reload

为了区分出我们访问的Tomcat服务器到底是属于哪个,可以给每个Tomcat服务器的首页加上一个标志,即修改(tomcat8081/tomcat8082)/webapps/ROOT目录下的index.jsp页面,tomcat8081这个Tomcat服务器的修改如下图所示,可以看到在原来的信息后面加上了---tomcat8081字样。

tomcat8082这个Tomcat服务器的修改如下图所示,可以看到在原来的信息后面加上了---tomcat8082字样。

最后,我们启动两个Tomcat服务器,先在浏览器地址栏输入www.sina.com.cn并回车,可以看到我们访问到了tomcat8081这个Tomcat服务器的首页。

再访问www.sohu.com,可以看到访问到的是tomcat8082这个Tomcat服务器的首页,这说明我们的反向代理配置的没问题。

淘淘商城第89讲——nginx配置反向代理相关推荐

  1. Windos环境用Nginx配置反向代理和负载均衡

    Windos环境用Nginx配置反向代理和负载均衡 引言:在前后端分离架构下,难免会遇到跨域问题.目前的解决方案大致有JSONP,反向代理,CORS这三种方式.JSONP兼容性良好,最大的缺点是只支持 ...

  2. nginx配置反向代理和负载均衡完结篇

    具体安装配置参考之前的文章 https://blog.csdn.net/weixin_44001965/article/details/102723855 文章目录 一,nginx操作的常用命令 ng ...

  3. Nginx配置反向代理访问内部服务

    Nginx可以提供高性能的反向代理服务,将客户机请求转发给内部网络中隐藏在幕后的真正的服务器,并将从服务器上得到的结果数据返回给Internet上请求的客户端,在用户看来,Nginx扮演的就是真实服务 ...

  4. nginx配置反向代理浏览器输入地址后点击登陆URL发生变化的处理

    今天项目上需要再用NGINX配置反向代理需求如下: 现在有A服务器只做为nginx服务器,B服务器作为代码服务器,用户访问A要实际上访问的是B的程序. 处理方式就是用nginx的方向代理处理即可: 打 ...

  5. nginx配置反向代理过程中遇到的坑 配置好之后报404问题

    项目场景: nginx配置反向代理路径 问题描述 在配置nginx反向代理的过程中,路径可以匹配上但是一直报404,找不到路径.nginx配置如下: location /business {add_h ...

  6. nginx笔记 安装nginx 配置 反向代理 多虚拟主机

    1,检测linux上是否 通过yum安装了nginx rpm   -qi  nginx 2.安装nginx之前的依赖包 yum install gcc patch libffi-devel pytho ...

  7. Nginx配置反向代理,一篇搞定!

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源:blog.csdn.net/zxd1435513775/article/ details/102508463 一.引言 其他话 ...

  8. ci框架 反向代理配置_《网站建设》Nginx配置反向代理

    [网站克隆] nginx反向代理镜像站点做贼站谈Nginx,实力是反向代理,因为研究肉鸡刷Adsense使用,花了1-2天来弥补Nginx的知识,发现有搜索. [网站克隆] nginx反向代理镜像站点 ...

  9. windows版 nginx配置反向代理实例教程 跳转tomcat和php网站

    抄自 https://www.cnblogs.com/j-star/p/8785334.html 个人理解 nginx端口设置为80,简称n tomcat端口设置为其他,例如8080,简称t php网 ...

最新文章

  1. R语言将数据列中的多种日期格式统一变化为一种固定格式实战:使用lubridate包中的parse_date_time函数
  2. 23种设计模式(11):责任链模式
  3. html5 java交互_html5+jquery与ssm进行json交互集成项目
  4. Rhythmk 一步一步学 JAVA(2) : 操作 MYSQL 数据库
  5. 编程之美2.13子数组的最大乘积
  6. Python -- xlrd,xlwt,xlutils 读写同一个Excel
  7. varchar 求和 非数值_考研线性代数 解题方法汇总(非知识点汇总)
  8. scrapy.request
  9. SAP License:赛锐信息访谈启示录(五)
  10. SpringBoot+Thyemleaf报错Template might not exist or might not be accessible
  11. 构建dubbo分布式平台-window安装zookeeper注册中心
  12. podman—网络设置、开机自启及加速器配置
  13. Leetcode——C++突击面试
  14. MySQL事务隔离及锁机制
  15. 董树义 近代微波测量技术_本土IC领域又一关键技术获得突破!
  16. Mac系统control,option,command的区别
  17. Mac如何保护苹果账户的安全?保护 Apple ID 帐户的技巧分享
  18. 第十九届乐博杯机器人科技嘉年华!圆满落幕!
  19. 计算机应用中dss是,在计算机应用中,英文缩写“DSS”表示( )。
  20. 安装colmap时报错“METIS_INCLUDE_DIRS-NOTFOUND“

热门文章

  1. 将SOP进行到底 (转载)
  2. CC2530 ZigBee自组网模块
  3. WIN10 系统日志错误--权限设置并未向在应用程序容器 不可用 SID
  4. vue forEach和map的区别
  5. python接口自动化测试代码_python接口自动化测试二:python代码实现接口测试
  6. AUTOCAD 每次打开一个图纸都重新运行程序ACAD.EXE
  7. 微信小程序设置字体无效_微信小程序自定义字体及自定义图标问题说明
  8. (更新下载链接)Win10下Realtek HD Audio Drivers 报错0x803fb005 解决办法
  9. 2017年1月19日
  10. Python编程无师自通--函数