1.什么是Nginx?


Nginx可以作为web服务器,更多的时候是作为网关,它具备:

  • 反向代理
  • 负载均衡
  • 动态路由
  • 请求过滤

2. Nginx于Zuul都可以作为网关有什么不同?(面试)

Nginx是一个高性能的HTTP的反向代理服务器,也是IMAP/POP3/SMIP服务器。
Zuul是netfilx开源的API GateWay服务器,本质上是一个Web Servlet应用,它在云平台提供动态路由,监控,弹性,安全等边缘服务的框架。
相同点:

  • 可以实现负载均衡
  • 可以实现反向代理(隐藏真实的IP)
  • 可以过滤请求,实现网关效果

不同点:

  • Nginx:c语言开发, Zuul:java语言开发
  • 负载均衡的实现方式不同
    • Zuul使用的是ribbon + eureka实现的负载均衡,
    • Nginx采用服务器实现负载均衡
  • Nginx适合于服务器端的负载均衡,Zuul适合微服务中的实现网关
  • Nginx相比于Zuul功能更强大。因为Nginx整合一些脚本语言。

3.Nginx作为反向代理

3.1 什么是代理和反向代理

  • 代理:通过客户机的配置,实现让一台服务器代理客户机,客户的所有请 求都交给代理服务器处理。(通俗的说就是打游戏中的托管)
  • 反向代理:用一台服务器,代理真实服务器,用户访问时,不再是访问真 实服务器,而是代理服务器。

3.2 Nginx作为反向代理服务器来使用

我们需要提前在nginx中配置好反向代理的规则,不同的请求,交给不同 的真实服务器处理,当请求到达nginx,nginx会根据已经定义的规则进行请求的转发,从而实现路由功能。

利用反向代理,就可以解决我们前面所说的端口问题,如图:

4.安装与使用

4.1 目录结构

  • conf:配置目录
  • contrib:第三方依赖
  • html:默认的静态资源目录,类似tomcat的webapps
  • logs:日志目录
  • nginx.exe:启动程序

4.2 反向代理

修改conf目录下的nginx.conf文件:

nginx中的每个server就是一个反向代理配置,可以有多个server,这样每个访问都经过80则不需要再加端口号。

4.3 使用

配置修改完成后:执行命令

start nginx:开启nginx
nginx -s reload:配置重新加载
nginx -s stop:停止nginx

5. 访问流程解析

浏览器访问manage.leyou.com/#/index/dashboard

  1. 浏览器准备发起请求,访问http://mamage.leyou.com,但需要进行域名解析 。
  2. 优先进行本地域名解析,因为我们修改了本地hosts,所以解析成功,得到地址:127.0.0.1 。
  3. 请求被发往解析得到的ip,并且默认使用80端口:http://127.0.0.1:80,本机的nginx一直监听80端口,因此nginx捕获了这个请求。
  4. nginx中配置了反向代理规则,将manage.leyou.com代理到127.0.0.1:9001,因此请求被转发。
  5. 后台系统的webpack server监听的端口是9001,得到请求并处理,完成后将响应返回到nginx
  6. nginx将得到的结果返回到浏览器。

Nginx解决端口问题相关推荐

  1. 使用nginx解决跨域问题

    1.跨域解释 1.1 怎么知道我遇到了跨域问题 如果项目没做前后端分离,是不会有跨域问题的.前后端分离的项目中,前端调用后台服务时,报错 No 'Access-Control-Allow-Origin ...

  2. n2n内网穿透打洞部署全过程 + nginx公网端口映射

    内网穿透.打洞工具有很多,此前在windows上使用的是vidcc这个玩意,也正因为linux不支持.自此在linux尝试过一些打洞工具,ssh 反向代理这些,因为安全性不便捷等多种原因,最终选择了n ...

  3. nginx解决浏览器跨域问题_前端通过Nginx反向代理解决跨域问题

    在前面写的一篇文章SpringMVC解决跨域问题,我们探讨了什么是跨域问题以及SpringMVC怎么解决跨域问题,解决方式主要有如下三种方式: JSONP CORS WebSocket 可是这几种方式 ...

  4. 使用nginx 同一端口根据不同域名转发到不同端口

    该文章属于原创类型,其他网站转载必须来源于蚂蚁课堂www.itmayiedu.com 需求:在一台服务器上部署两个tomcat项目,都想共用同一个端口号80.但是一台服务器tomcat端口号不能重复? ...

  5. nginx解决使用域名访问项目

    我们现在访问页面使用的是:http://localhost:9001 有没有什么问题? 实际开发中,会有不同的环境: 开发环境:自己的电脑 测试环境:提供给测试人员使用的环境 预发布环境:数据是和生成 ...

  6. 前端 用nginx解决js跨域问题

    前言 公司的一个项目,页面需要给第三方接口发送一个请求,获取第三方接口生成的一个二维码图片,结果 js 跨域获取资源报错:" No 'Access-Control-Allow-Origin' ...

  7. 将Vue项目部署在Nginx,解决前端路由、反向代理和静态资源问题

    将Vue项目部署在Nginx,解决前端路由.反向代理和静态资源问题 需求: 一台服务器,Linux 安装了Nginx 使用Vue脚手架编写的Vue项目 第一步:将Vue项目打包,然后将生成的dist文 ...

  8. Access-Control-Allow-Origin VUE本地调试跨域问题使用nginx解决

    最近在使用VUE做前后端分离的项目,页面代码开发好了,连接后台获取数据的时候发现怎么都调不到后台接口,页面F12的信息如下: 如图所示:重点已经圈起来了 (Access-Control-Allow-O ...

  9. 无需CORS,用nginx解决跨域问题,轻松实现低代码开发的前后端分离

    近年来,前后端分离已经成为中大型软件项目开发的最佳实践. 在技术层面,前后端分离指在同一个Web系统中,前端服务器和后端服务器采用不同的技术栈,利用标准的WebAPI完成协同工作.这种前后端分离的&q ...

最新文章

  1. operate函数_跟着 redux 学 compose组合函数
  2. 用Netscaler的Variable和Assignment来实现计数控制
  3. c++ 数据类型转换笔记
  4. 用一个二维码做下载地址,自动区分是 ios 还是 android
  5. 让Redis突破内存大小的限制
  6. Linux系统PATH变量配置
  7. Git初始化配置以及配置github
  8. 用js实现千位分隔符
  9. RTT线程管理篇——RTT什么时候调度
  10. 探究操作系统的内存分配(malloc)对齐策略
  11. HIVE中常见文件存储格式比较
  12. 笔记本计算机bios设置,联想笔记本BIOS设置详解
  13. java 接入apple pay_支付的那些套路(apple pay篇)
  14. MFC实现程序开机自动运行
  15. 联创机房管理系统重连服务器失败,联创机房管理系统在CAD实验室应用探析.doc...
  16. 电话销售潜在客户从哪里找 电销行业还值得深入研究吗?
  17. JavaOOP面试题(108道)
  18. Process Explorer函数调用方式
  19. java listbox_将数据从Listbox1复制到Listbox2
  20. 【NC】NC6系列金额计算处理逻辑剖析

热门文章

  1. 海思调试串口增加登录密码
  2. 图像的阴影检测消除和图像重建算法matlab仿真
  3. uni.getLocation获取位置失败
  4. canvas动画科技园_【国庆营地】把梳子卖给和尚?沃顿投资大赛预备营带你洞见价值...
  5. 手把手教你用CS1802A开卡工具和MAS0902量产工具开卡CS1802A+镁光PFH18 N18颗粒
  6. python程序设计重点_《Python程序设计》怎么样_目录_pdf在线阅读 - 课课家教育
  7. MYSQL学习笔记(自用) 第二章
  8. react native : Implementing unavailable method
  9. python3.9下错误,pip安装matplotlib卡在Building wheel for matplotlib (setup.py)..不动的原因与解决
  10. MATLAB delaunay函数使用