ngnix安装和使用及集群搭建 ,负载均衡策略

1 Nginx介绍

Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供IMAP/POP3/SMTP服务.Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,其特点是占有内存少,并发能力强.
1.1内存少,不超过2M,(Tomcat服务器启动300-500M)
1.2并发能力强,并发3万-5万次 Tomcat并发150-220之间
1.3Nginx使用C语言开发

2 Nginx的安装和下载

2.1 nginx的下载
nginx.org/en/down.html
2.2 nginx的安装注意事项

  1. Nginx服务器启动时会占用80端口
  2. Nginx服务器安装时不要出现中文+空格问题C盘慎用(程序员操守)
  3. Nginx底层开发是用C语言写的,所以注释 使用#号 独占一行完成注释
    2.3 nginx 的命令
    命令执行位置:nginx命令必须在nginx.exe所在的目录中执行
    命令:
    启动命令:start nginx
    重启命令:nginx -s reload
    关闭命令:nginx -s stop
    2.4nginx服务项说明
    1.nginx主进程 主要提供反向代理服务
    2.nginx守护进程 防止主进程意外关闭
    如果将来想要关闭nginx服务器,则应先关闭守护,再关闭主进程
    2.5关于HOSTS文件说明
    说明:操作系统为了开发人员测试方便,可以通过hosts执行文件的域名与IP的映射关系,如果配置了hosts文件,则先走hosts之后执行全球DNS域名解析服务

在这里插入图片描述
操作系统为开发者提供了一个hosts文件**.该文件可以实现域名与IP 地址的映射关系**,但是由于只是测试时使用,所以该配置只对本级有效
位置
在这里插入图片描述
具体配置


#@SwitchHosts! {"url": null, "icon_idx": 0, "title": "\u5f53\u524d\u7cfb\u7edf hosts"}

# 配置  

#左侧写IP地址   右侧写域名  中间使用空格分隔

#为了实现Linux发布修改如下

#192.168.126.129  image.test.com

#192.168.126.129  manager.test.com

127.0.0.1   image.test.com

127.0.0.1   manage.test.com

127.0.0.1   www.test.com

127.0.0.1   sso.test.com


2.6编辑Nginx服务器

#配置后台管理系统
	server {
		listen 80;
		server_name manage.zz.com;

		location / {
			#root 代表文件目录
			#index 代表默认的访问页面
			#proxy_pass 代表发起url请求
			proxy_pass http://localhost:8091;
		}
	}


3 搭建服务器集群

3.1集群分析
在这里插入图片描述

3.2动态获取端口
3.2.1获取端口位置
在这里插入图片描述

3.2.2编辑 PortController

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 {
    /**
     * 通过Spring容器动态获取YML配置文件中的端口即可
     */
    @Value("${server.port}")
    private int port;

    @RequestMapping("/getPort")
    public String getPort(){

        return "当前访问的端口号为:"+port;
    }
}



3.3搭建Tomcat服务器集群
3.3.1需求
将后台管理系统打成3个war包程序,端口号分别为8081,8082,8083
3.3.2项目打包操作
在这里插入图片描述

3.3.3项目运行测试
在这里插入图片描述

3.4实现Ngnix集群配置
3.4.1
当用户通过manage.jt.com的方式访问服务器是,要求通过反向代理的方式实现,要求陪着nginx中集群
3.4.2配置nginx

#配置后台管理系统
	server {
		listen 80;
		server_name manage.jt.com;

		location / {
			#root 代表文件目录
			#index 代表默认的访问页面
			#proxy_pass 代表发起url请求
			#proxy_pass http://localhost:8091;
			proxy_pass http://jtW;
		}
	}

	#配置集群的关键字   通过集群配置tomcat服务器即可
	#默认: 1.轮询的机制
	upstream jtW {
		server 127.0.0.1:8081;
		server 127.0.0.1:8082;
		server 127.0.0.1:8083;
	}


3.5关于nginx负载均衡策略说明
3.5.1轮询策略
说明:根据配置文件的顺序.之后一次访问服务器,该策略也是默认的机制

#默认: 1.轮询的机制
	upstream jtW {
		server 127.0.0.1:8081;
		server 127.0.0.1:8082;
		server 127.0.0.1:8083;
	}


3.5.2权重策略
场景说明:公司采购服务器都是有时间间隔的,但是由于服务器新旧不同,硬件版本不同,导致服务器处理能力不同,如果上述问题不做处理,依然采用轮询的机制,则会出现严重的负载不均衡现象
所有需要通过权重方式平衡压力

#配置集群的关键字   通过集群配置tomcat服务器即可
	#默认: 1.轮询的机制  2.权重策略 
	upstream jtW {
		server 127.0.0.1:8081 weight=6;
		server 127.0.0.1:8082 weight=3;
		server 127.0.0.1:8083 weight=1;
	}


3.5.1 IPHASH策略
需求:当某些业务需要特定的访问固定服务器是,就要选用iphash机制
配置

#默认: 1.轮询的机制  2.权重策略  3.IPHASH
	upstream jtW {
		ip_hash;
		server 127.0.0.1:8081 weight=6;
		server 127.0.0.1:8082 weight=3;
		server 127.0.0.1:8083 weight=1;
	}


IPHASH原理介绍
在这里插入图片描述
3.6关于Nginx负载均衡的补充
3.6.1 down属性
说明:如果Tomcat服务器发生了宕机现象,则通过配置文件标识down的属性,则nginx将不会访问故障机

#默认: 1.轮询的机制  2.权重策略  3.IPHASH
	upstream jtW {
		#ip_hash;
		server 127.0.0.1:8081 down;
		server 127.0.0.1:8082 ;
		server 127.0.0.1:8083 ;
	}


3.6.2 backup属性
说明 ;通常情况下,都会部署一些备用机防止由于主机宕机,剩余的机器不能实现高并发从而导致整个服务宕机的问题
如果设置了备用机,则正常情况下用户不会访问,但是当主机或者主机遇忙时才会访问

#配置集群的关键字   通过集群配置tomcat服务器即可
	#默认: 1.轮询的机制  2.权重策略  3.IPHASH
	upstream jtW {
		#ip_hash;
		server 127.0.0.1:8081 down;
		server 127.0.0.1:8082 ;
		server 127.0.0.1:8083 backup;
	}


3.6.3Tomcat高可用配置
属性配置:

  1. max_fail =1 配置nginx访问服务器的最大失败次数
  2. fail_timeout=60s 理解为一个时间周期,如果发现服务器宕机,则在60秒内不会再次访问故障机

扩展

反向代理说明

反向代理服务器位于用户和目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源,同时用户不需要知道目标服务器的地址,也无需再用户端作任何设定,反向代理服务器通常可用来作为web加速,即使用反向代理作为web服务器的前置机来降低网络和服务器的负载,提高访问效率
总结:

  1. 反向代理服务器结婚用户和真实服务器之间
  2. 用户以为反向服务器就是真实的服务器
  3. 用户不需要了解真实的服务器到底是谁
  4. 反向代理服务器保护了真实服务器的信息
  5. 反向代理服务器就是服务端代理
    在这里插入图片描述

正向代理说明

在这里插入图片描述
正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。
特点:
1.代理服务器介于目标和客户端之间
2.客户端非常清楚自己访问的服务器到底是谁
3.正向代理是客户端代理.保护了真实的客户信息.
一般条件下网络通讯时会使用正向代理.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值