概述
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
- 浏览器准备发起请求,访问http://mamage.leyou.com,但需要进行域名解析 。
- 优先进行本地域名解析,因为我们修改了本地hosts,所以解析成功,得到地址:127.0.0.1 。
- 请求被发往解析得到的ip,并且默认使用80端口:http://127.0.0.1:80,本机的nginx一直监听80端口,因此nginx捕获了这个请求。
- nginx中配置了反向代理规则,将manage.leyou.com代理到127.0.0.1:9001,因此请求被转发。
- 后台系统的webpack server监听的端口是9001,得到请求并处理,完成后将响应返回到nginx
- nginx将得到的结果返回到浏览器。
最后
以上就是聪慧雪糕为你收集整理的Nginx解决端口问题的全部内容,希望文章能够帮你解决Nginx解决端口问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复