乐趣区

关于nginx:分布式电商项目三Nginx

反向代理

反向代理服务器位于用户与指标服务器之间,然而对于用户而言,反向代理服务器就相当于指标服务器,即用户间接拜访反向代理服务器就能够取得指标服务器的资源。同时,用户不须要晓得指标服务器的地址,也毋庸在用户端作任何设定。反向代理服务器通常可用来作为 Web 减速,即应用反向代理作为 Web 服务器的前置机来升高网络和服务器的负载,进步拜访效率。

特点:
1. 反向代理服务器位于用户与指标服务器之间
2. 对于用户而言, 认为代理服务器就是实在的服务器.
3. 反向代理机制爱护了实在的服务器信息.
4. 反向代理个别称之为服务端代理.

步骤:
1. 当用户发动申请时, 该申请被代理服务器拦挡.
2. 代理服务器查问本人的配置文件, 依据 url 地址获取实在的服务器信息.
3. 由代理服务器依据实在的服务器信息, 获取数据.
4. 实在的服务器接管申请之后, 将数据返回给代理服务器.
5. 代理服务器接管到服务器数据之后, 将数据回传给用户, 本次代理完结.

正向代理

正向代理阐明

正向代理,意思是一个位于客户端和原始服务器 (origin server) 之间的服务器,为了从原始服务器获得内容,客户端向代理发送一个申请并指定指标(原始服务器),而后代理向原始服务器转交申请并将取得的内容返回给客户端。客户端能力应用正向代理。

特点:
1. 代理服务器位于用户与实在服务器之间的
2. 客户十分分明本人拜访的服务到底是谁?
3. 服务器不分明拜访本人的服务器到底是谁, 认为只是代理服务器拜访.
4. 正向代理称之为客户端代理. 爱护了客户的信息

Nginx

Nginx 服务器介绍

Nginx (engine x) 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务。Nginx 是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.ru 站点(俄文:Рамблер)开发的,第一个公开版本 0.1.0 公布于 2004 年 10 月 4 日。
其将源代码以类 BSD 许可证的模式公布,因它的稳定性、丰盛的功能集、示例配置文件和低系统资源的耗费而闻名。2011 年 6 月 1 日,nginx 1.0.4 公布。

Nginx 是一款轻量级的 Web 服务器 / 反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在 BSD-like 协定下发行。其特点是占有内存少,并发能力强,事实上 nginx 的并发能力在同类型的网页服务器中体现较好,中国大陆应用 nginx 网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

特点:
1. 占用内存少 不超过 2M
2. 并发能力强 5 万 / 秒 tomcat 150-220 个 / 秒
3. 开发语言 C 语言

Nginx 下载

nginx 装置

启动: 首先右键以管理员身份运行, 之后程序闪退示意服务器启动失常.

查看 Nginx 服务启动项

nginx 启动时, 会启动 2 个过程项, 其中一个
1. 主过程 次要为用户提供反向代理服务 占用内存大
2. 守护过程 避免主过程意外敞开的. 占用内存小的

启动失常测试

NGINX 入门案例阐明

配置文件阐明

http{
    #必须在 http 协定之内进行配置
    server{
        listen 80;
        server_name "监听域名地址";
        location / {root  "反向代理的是一个目录";}
        
    }
    server{.....}
}

NGINX 实现图片回显

编辑 Nginx.conf 文件

# 配置图片代理服务器  http://image.jt.com:80
    server {
        listen 80;
        server_name image.jt.com;

        location / {root  D:/JT-SOFT/images;}    
    }

nginx 命令

目录: 在 nginx 的根目录中执行

命令:

1. 启动命令 start nginx

2. 重启命令 nginx -s reload

3. 进行命令 nginx -s stop

编辑 hosts 文件(能够应用 SwitchHosts)

介绍: HOSTS 文件是操作系统为了不便开发, 在本地造成的一个域名与 IP 的映射的文件. 然而该文件只对本机无效.
地位: C:WindowsSystem32driversetchosts

文件内容:

#IP 域名  映射关系

127.0.0.1  image.jt.com

127.0.0.1  manage.jt.com

127.0.0.1  www.jt.com

127.0.0.1  sso.jt.com

127.0.0.1  localhost

对于 nginx 回显图片报错问题阐明

1. 查看配置文件是否正确

2. 查看上传门路

3. 查看 nginx 配置是否失常

4. 查看 nginx 是否启动失常

5. 查看 hosts 文件是否无效 如果不失效重启计算机

实现域名的代理

业务需要

需要: 须要通过 http://manage.jt.com 域名拜访 l …:8091 的服务器.
操作:
1. 批改 hosts 文件
2. 批改 nginx 的配置文件

批改 nginx.conf 配置文件

批改 nginx 之后, 重启即可.

nginx 高级用法

nginx 负载平衡机制

阐明: 为了晋升后盾服务器的解决能力, 能够减少服务器. 实现负载平衡的策略.

动静获取服务器端口号.

申请门路: http://manage.jt.com/getPort 获取到以后的服务器端口号信息.

package com.jt.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class PortController {@Value("${server.port}")
    private String port;
    /**
     * 获取端口号信息
     */
    @RequestMapping("/getPort")
    public String getPort(){return "以后拜访的服务器的端口号为:"+port;}
}

我的项目打包

利用 maven 形式打包

阐明: 批改各自的端口号, 之后将我的项目打包

利用压缩工具打包

将 xxx.war 改为 xxx.zip 之后利用压缩工具批改配置文件, 之后再次改为 xxx.war 即可

我的项目公布

命令: java -jar 8081.war 会占用一个终端窗口, 在运行时, 终端不能敞开的.

开释资源的组合键

ctrl + c

nginx 负载平衡测试

轮询策略

阐明: 依照 nginx.conf 中配置文件的程序顺次拜访.

# 配置商品后盾服务器
    server{
        listen  80;
        server_name manage.jt.com;

        location / {
            #代理实在服务器地址
            #proxy_pass http://localhost:8091;
            #映射到集群
            proxy_pass  http://jtWindows;
        }
    }

    #配置 tomcat 服务器集群  1. 默认 轮询策略
    upstream jtWindows {
        server 127.0.0.1:8081;
        server 127.0.0.1:8082;
        server 127.0.0.1:8083;
    }

权重策略

阐明: 因为公司的物理服务器可能性能有高有低, 为了让高性能的服务器解决更多的数据.

# 配置 tomcat 服务器集群  1. 默认 轮询策略  2. 权重策略
    upstream jtWindows {
        server 127.0.0.1:8081  weight=6;
        server 127.0.0.2:8082  weight=3;
        server 127.0.0.3:8083  weight=1;
    }

IPHASH 策略

阐明: 如果须要将 服务器与 IP 地址 进行绑定时, 应用该策略

    #配置 tomcat 服务器集群  1. 默认 轮询策略  2. 权重策略  3.ip_hash 策略
    upstream jtWindows {
        ip_hash;
        server 127.0.0.1:8081  weight=6;
        server 127.0.0.2:8082  weight=3;
        server 127.0.0.3:8083  weight=1;
    }

原理:

Nginx 属性阐明

down 属性

阐明: 如果服务器宕机, 或者该服务器不想为用户持续提供服务, 则能够采纳 shutdown 属性进行标识.
nginx 拜访规定: 如果 nginx 拜访的服务器不能失常的响应, 则期待 超时 之后, 拜访新的服务器.

# 配置 tomcat 服务器集群  1. 默认 轮询策略  2. 权重策略  3.ip_hash 策略
    upstream jtWindows {
        #ip_hash;
        server 127.0.0.1:8081 down;
        server 127.0.0.1:8082;
        server 127.0.0.1:8083;
    }

backup 属性

阐明:backup 示意备用机. 失常状况下, 该服务器不会为用户提供服务. 然而当服务器宕机, 或者服务器正忙时, 才会拜访该服务器.

# 配置 tomcat 服务器集群  1. 默认 轮询策略  2. 权重策略  3.ip_hash 策略
    upstream jtWindows {
        #ip_hash;
        server 127.0.0.1:8081 down;
        server 127.0.0.1:8082 down;
        server 127.0.0.1:8083 backup;
    }

tomcat 服务器高可用机制

高可用: 当服务器产生故障时, 通过某种机制能够 主动的实现 故障的迁徙, 从而使得用户不受任何的影响.

# 配置 tomcat 服务器集群  1. 默认 轮询策略  2. 权重策略  3.ip_hash 策略
    upstream jtWindows {
        #ip_hash;     down 标识宕机     backup 备用机
        #max_fails=1          示意最大的失败次数
        #fail_timeout=60s    如果拜访不通, 则在 60 秒内, 不会再次拜访故障机
        server 127.0.0.1:8081 max_fails=1 fail_timeout=60s;
        server 127.0.0.1:8082 max_fails=1 fail_timeout=60s;
        server 127.0.0.1:8083 max_fails=1 fail_timeout=60s;
    }
退出移动版