目录

  • 一、SwitchHosts解决域名
  • 二、nginx解决端口问题
  • 三、实现流程分析
  • 最后

今天是刘小爱自学Java的第142天。

感谢你的观看,谢谢你。

学习计划安排,主要解决两个问题:

  • 一个是使用SwitchHosts解决域名问题。
  • 一个nginx的使用,解决端口问题。

一、SwitchHosts解决域名

要知道在实际开发中会有不同的环境。

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

如果不同环境使用不同的ip去访问,可能会出现一些问题,所以要统一环境。

1统一环境

现在条件有限,不可能说去注册一个域名来使用,因此我们可以伪造本地的hosts文件。

首先找到电脑中的hosts文件:

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

然后再修改本地的hosts为:

  • 127.0.0.1 api.liuxiaoai.com :我们的网关Zuul。
  • 127.0.0.1 manage.liuxiaoai.com:我们的后台系统地址。

这样的话就能解决一个问题,以后在浏览器上访问设定的域名即可,而不是直接使用ip。

一个域名会被解析为一个或多个ip,浏览器会在hosts文件中查找域名映射的ip地址。

3SwitchHosts的使用

每次都要去找到host文件,路径繁琐,非常麻烦,所以可以使用SwitchHosts来完成:

注意,再次强调:

真正地做项目会去买一个域名,配置好后,所有人通过该域名访问即可。

但是现在没有买域名,所以使用SwitchHosts来自己骗自己,目的是知道有这回事。

二、nginx解决端口问题

虽然域名解决了,但是现在如果我们要访问,还得自己加上端口9001。

那么问题来了,比如说我们去访问淘宝,它怎么就不需要加上一个端口号呢?

所以我们希望实现的是只需要域名就能直接实现访问:manage.liuxiaoai.com。

如果不输入端口,浏览器会将其默认设成80,那如何才能把请求转移到9001端口呢?

这里就要用到反向代理工具:Nginx

①nginx作为web服务器

Web服务器分2类:

  • web应用服务器,如:Tomcat。
  • web服务器,如:Apache 服务器,Nginx

它们的区分在于:

  • Nginx不能解析jsp等页面,只能处理js、css、html等静态资源。

  • 但是Nginx的并发能力要远高于Tomcat这些web应用服务器。

所以项目中使用Nginx + Tomcat两者结合。

②nginx作为反向代理服务器

什么是反向代理?

用一台服务器代理真实服务器,用户访问的不再是真实服务器而是代理服务器。

利用反向代理,就可以解决端口问题:

注意:浏览器中输入任意路径如果没有指定端口,浏览器会默认配置端口为80。

在nginx中配置好反向代理的规则:

根据不同的请求交给不同的真实服务器处理。

当请求到达nginx,nginx会根据已经定义的规则进行请求的转发,从而实现反向代理。

③nginx安装和使用

安装非常简单,网上一堆资料,不再赘述,我们在本地安装一台nginx,目录结构如下:

nginx可以直接点击,但是会闪一下导致以为它没启动,实际上它已经后台启动了。

这样的坏处在于如果多次点击会启动多个nginx服务器。

所以一般会通过命令行来启动,命令如下:

  • 启动:start nginx.exe
  • 停止:nginx.exe -s stop
  • 重新加载:nginx.exe -s reload

其中在conf文件夹中可以完成配置:

在浏览器上输入manage.liuxiaoai.com,因为没有加端口,浏览器会默认配置端口80。

而我们在nginx中配置的监听端口又是80,所以会访问到nginx服务器。

nginx服务器就会根据配置,反向代理到我们设置本地路径+9001端口。

三、实现流程分析

现在实现了域名访问网站,分析一遍流程:

①浏览器准备发起请求,访问对应域名,但需要进行域名解析。

②本地域名解析,因为修改了hosts,所以解析成功,得到地址:127.0.0.1,请求被发往解析得到的ip,并且默认使用80端口。

③nginx监听80端口,因此捕获这个请求。

④nginx中配置了反向代理规则,将manage.liuxiaoai.com代理到了本地ip+9001端口。

⑤后台系统端口是9001,得到请求并处理,完成后将响应返回到nginx服务器。

⑥nginx将得到的结果返回到浏览器。

最后

谢谢你的观看。

如果可以的话,麻烦帮忙点个赞,谢谢你。

nginx服务器之反向代理的使用相关推荐

  1. Nginx配置实例-反向代理实例:根据访问的路径跳转到不同端口的服务中

    场景 Ubuntu Server 16.04 LTS上怎样安装下载安装Nginx并启动: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/detai ...

  2. Nginx中配置服务的反向代理(服务器集群技术)

    需求:安装两个tomcat服务,通过nginx反向代理. 1:安装两个及以上tomcat 2:配置tomcat 修改端口:打开bin目录下的server.xml文件 修改下面三个端口, 不能重复防止冲 ...

  3. Nginx http和反向代理配置实例介绍

    Nginx  是一个高性能的 HTTP 和反向代理服务器,本节以实际实例介绍如何实现Nginx 反向代理. 1.  安装Nginx 安装Nginx之前,首先安装相关模块的依赖库: 这里安装Pcre和O ...

  4. 【转】使用IIS做HTTP和WebSocket服务的反向代理

    反向代理对于服务器来说是非常实用的功能,可以将毫不相关的网站部署到同一个域名下,对于使用docker的人来说可以免去大量配置上的麻烦.它还能将HTTP流量转换成HTTPS,多个服务只需要一个证书就能解 ...

  5. Nginx正向与反向代理

    Nginx 主要用于反向代理与负载均衡 什么是代理服务器(Proxy Serve)? 提供代理服务的电脑系统或其它类型的网络终端,代替网络用户去取得网络信息. 为什么使用代理服务器? 提高访问速度  ...

  6. 分布式项目-Nginx安装(反向代理)

    可以根据parent_id来查询分类的列表 服务器上的图片是如果管理的? 1.如果是分布式环境引用会存在问题 2.图片的下载也会给服务器增加压力 3.如果存在高并发的话,就需要增加tomcat服务器, ...

  7. Nginx 部署、反向代理配置、负载均衡

    Nginx 部署.反向代理配置.负载均衡 最近我们的angular项目部署,我们采用的的是Nginx,下面对Nginx做一个简单的介绍. 为什么选择Nginx 轻:相比于Apache,同样的web服务 ...

  8. Nginx+Tomcat 实现反向代理

    反向代理是指对于客户端而言代理服务器就是原始服务器,并且客户端不需要进行任何特别的设置.客户端向反向代理发送请求,接着反向代理将判断向何处(后端节点)转交请求,并将获得的内容返回给客户端,如下图所示: ...

  9. Nginx总结(反向代理、负载均衡、动静分离)篇

    一.Nginx简介 什么是Nginx Nginx ("engine x")是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,事实上ngimx,的并发能力确实在同 ...

最新文章

  1. opencv——pcb上寻找mark点(拟合椭圆的方法)
  2. 几经沉浮,自乱前程——硬盘巨头启示录之迈拓篇
  3. “adb”不是内部或外部命令,也不是可运行的程序或批处理文件(Win)与(Mac)——终极解决方案
  4. erlang md5
  5. linux fedora下实现锐捷认证
  6. 8能达到go速度吗 php_相同逻辑的php与golang代码效率对比,最好语言落谁家…
  7. 看门狗超时前在内核打印信息
  8. 【软件工程】基准配置(基线配置)
  9. Windows系统下VMware 虚拟机中文件提取到主机的方法
  10. 关于地理坐标的精度设置,做测绘的工程师应该懂的基本常识(南方数码CASS11.0.0.6还增加批量转换的方式)
  11. 互联网赚钱项目有哪些?目前最火的互联网项目
  12. DIY空气检测仪:攀藤G5ST分析仪
  13. 初级会计实务--第三章第四节、应交税费
  14. DL基本知识(五)神经网络经典模型
  15. iphone11双卡怎么安装(苹果11门禁卡模拟)
  16. Ros 使用c++ 和 python操作
  17. 智能客服 | 浅谈人工智能聊天机器人ChatGPT
  18. PAT顶级 1016 Uniqueness of MST (35分)(判断最小生成树是否唯一)
  19. LIC-Fusion 2.0: LiDAR-Inertial-Camera Odometry with Sliding-Window Plane-Feature Tracking
  20. 基于Simulink宽带单基地雷达系统仿真(附源码)

热门文章

  1. CentOS 8.5高性能计算开发环境配置备忘
  2. 优先队列——51Nod逛街
  3. mx150 宏碁swift3_宏碁发新款Swift 3轻薄本:4K屏+MX150显卡
  4. MySQL 的prepare使用中的bug解析过程
  5. 【Lovea Chino】Node.js 仙侠传(第一部)
  6. GitHub的Windows客户端的使用教程
  7. fopen与freopen
  8. LVI-SAM学习笔记3:clear()和shrink_to_fit()函数
  9. 空间三角形重心坐标计算方法
  10. [转]Oracle 错误大全