Nginx代理与电商架构

开发阶段中的环境
开发环境:自己的电脑 
测试环境:提供给测试人员使用的环境 
生产环境:项目最终发布上线的环境

预发布环境:数据是和生成环境的数据一致,运行最新的项目代码进去测试

每个环境的访问地址是不同的,可能因为访问地址不同导致一些问题的产生,所以,为了避免该类问题的产生,可以使不同的环境访问地址完全一致,通过域名访问即可实现。

通过域名访问后台系统
现在:http://127.0.0.1:8081/rest/page/index

需要通过manage.taoao.com访问。

http://manage.taotao.com:8081/rest/page/index

Hosts
用户访问淘宝:

用户 -> www.taobao.com -> 本机的hosts文件中查找域名映射,如果查找到就返回 ->浏览器通过域名到DNS查找服务器ip地址 -> 执行访问 
windows下的hosts文件所在路径:c:\windows\system32\drivers\etc 
Linux下的hosts文件所在路径: /etc/hosts

实现
1、 修改本地的hosts,将manage.taotao.com映射到127.0.0.1 
 
效果: 


但是,如果后台系统占用80端口,其他系统就无法占用80,也就是无法通过域名直接访问,必须通过域名:端口访问http://www.taotao.com:8081/, 
问题是:导致,生产环境和开发环境的访问路径是不同的。

如何解决以上问题? – 通过nginx来解决。

Nginx简介
目前电商和互联网系统都会采用nginx + 应用服务器(tomcat).

Web服务器分2类: 
1、 web服务器 
a) Apache 服务器 
b) Nginx 
c) IIS 
2、 web应用服务器 
a) tomcat 
b) resin 
c) jetty

区分:web服务器不能解析jsp等页面,只能处理js、css、html等静态资源。 
并发:web服务器的并发能力远高于web应用服务器。 
淘宝: 

京东:(也是nginx,将服务名称改为JDWS) 

使用


三个命令:(在 CMD 中执行) 
启动:start nginx.exe 
停止:nginx.exe -s stop 
重新加载:nginx.exe -s reload

只有2个进程nginx才算是真正的启动成功: 


Nginx的配置


先把我们的项目端口改为8081 


修改nginx配置:

 

测试


现在的请求:

用户 -> Nginx -> tomcat

启动nginx的注意事项
1、 其他服务占用80端口,会导致nginx启动失败,检查的方法是 cmd  nginx.exe 
2、 Nginx的路径不能包含中文

代理
正向代理
用户 -> 代理 -> google

反向代理
用户 -> nginx -> tomcat

解释:  Tomcat根本不知道请求的来源,只知道所有的请求都是来源于Nginx,不知道真正的来源。 原文:https://blog.csdn.net/cckevincyh/article/details/80165235