【SSM分布式架构电商项目-03】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配置:

    server {
        listen       80;
        server_name  manage.taotao.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

    proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        location / {
        proxy_pass http://127.0.0.1:8081;
        proxy_connect_timeout 600;
        proxy_read_timeout 600;
        }

    }

这里写图片描述

测试

这里写图片描述

现在的请求:

用户 -> Nginx -> tomcat

启动nginx的注意事项

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

代理

正向代理

用户 -> 代理 -> google

反向代理

用户 -> nginx -> tomcat

解释:
Tomcat根本不知道请求的来源,只知道所有的请求都是来源于Nginx,不知道真正的来源。

猜你喜欢

转载自blog.csdn.net/cckevincyh/article/details/80165235