分布式+集群方式部署项目(nginx)

2023-10-31

  • 分布式:把不同的业务分布在不同的服务器。
  • 集群:多台服务器实现同一个业务
  • 分布式+集群解决了:多并发,单点故障,处理效率慢(tomcat不擅长处理静态资源,它把静态资源当动态资源处理)需要采用动静分离的办法解决。

- Nginx

Nginx是一个俄罗斯人编写的开源HTTP服务器。
优点:
1.高并发连接。
2.内存消耗少。
3.支持Rewrite重写规则:能够根据域名、URL的不同,将 HTTP 请求分到不同的后端服务器群组。
4.内置的健康检查功能:如果 Nginx Proxy 后端的某台 Web 服务器宕机了,不会影响前端访问。

Nginx基本操作

  • 把nginx压缩包拷贝到/usr/local/src

  • 编译安装

  • Ngnix的安装实际上,就是把C语言源码包编译为软件包,所以需要C编译环境

  • C语言编译环境

  • 准备一个C编译环境(Ubuntu apt,centos yum)
    yum install gcc gcc-c++ ncurses-devel perl
    yum -y install make gcc gcc-c++ ncurses-devel
    yum -y install zlib zlib-devel
    yum -y install openssl openssl–devel
    yum install -y pcre-devel

  • ·tar -zxvf xxx.tar.gz
    指定编译到哪个路径:
    cd nginx-1.9.9

  • 手动创建安装目录:

  • mkdir /usr/local/nginx

  • 配置安装目录:

  • cd /usr/local/src/nginx1.9.9

  • ./configure --prefix=/usr/local/nginx

  • 安装:

  • make && make install

  • 启动服务

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
访问主页http://localhost
如果需要远程访问,就需要关闭防火墙

  • 重启服务

当修改了配置文件时需要重新启动
查看进程命令 ps -ef|grep nginx
强制删除进程命令 kill -9 进程号


- Ngnix负载均衡操作


  • 每台tomcat由于硬件的不一致他支持的连接也是不一样的,这就需要nginx均衡的分发到不同的tomcat,这就需要配置niginx的负载均衡。
  • 负载均衡策略
  • 1、轮询(默认),默认
    每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
    weight 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
  • 2、ip_hash
    每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
  • 3、 fair(第三方)按后端服务器的响应时间来分配请求,响应时间短的优先分配。
  • 4、url_hash(第三方)
    按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

- 1)配置负载均衡简介

在http节点里添加:
#定义负载均衡设备的 ip及设备状态
upstream myServer {
server 127.0.0.1:9090 down;
server 127.0.0.1:8080 weight=2;
server 127.0.0.1:6060;
server 127.0.0.1:7070 backup;
}
在需要使用负载的server节点下添加
在http节点里添加:
#定义负载均衡设备的 ip及设备状态
upstream myServer { (配置端口)
server 127.0.0.1:9090 down;
server 127.0.0.1:8080 weight=2;
server 127.0.0.1:6060;
server 127.0.0.1:7070 backup;
}
proxy_pass http://myServer;(启用)


  • 具体参数代表意思:

upstream 每个设备的状态:
down 表示单前的server暂时不参与负载
weight 默认为1.weight越大,负载的权重就越大。
max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
fail_timeout:max_fails 次失败后,暂停的时间。
backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻

注意:upstream中不要以http://开头
使用localhost 127.0.0.1切换看效果

  • nginx单台配置tomcat

Nginx转发tomcat
proxy_pass http://localhost:8080;#交给tomcat处理:
在这里插入图片描述

  • 多台配置 tomcat
  • 拷贝原来的Tomcat
  • 分别修改server.xml
    把端口改为没有是使用的端口,如8006。
    <Connector port=“8080” protocol=“HTTP/1.1” connectionTimeout="20000"redirectPort=“8443” /> 把端口改为没有是使用的端口,如8082。
    把端口改为没有是使用的端口,如8092。
  • 测试访问
    http://ip:8080
    http://ip:8090
  • Nginx集成tomcat

upstream myServer {
server 127.0.0.1:8090;
server 127.0.0.1:8080;
}
proxy_pass http://myServer;#交给tomcat集群处理
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

分布式+集群方式部署项目(nginx) 的相关文章

随机推荐

  • python机器学习算法(赵志勇)学习笔记( Logistic Regression,LR模型)

    Logistic Regression 逻辑回归 分类算法是典型的监督学习 分类算法通过对训练样本的学习 得到从样本特征到样本的标签之间的映射关系 也被称为假设函数 之后可利用该假设函数对新数据进行分类 通过训练数据中的正负样本 学习样本特
  • vue遮罩加载动画(可以当作全屏弹窗)

    最终效果 加载动画部分 div span span span span span span span span span span div
  • 免费馅饼【暑期集训I题】【经典DP】

    这不是一道很废脑汁的题目 可以说和前面的数塔相同 只是题目讲的长了些而已 都说天上不会掉馅饼 但有一天gameboy正走在回家的小径上 忽然天上掉下大把大把的馅饼 说来gameboy的人品实在是太好了 这馅饼别处都不掉 就掉落在他身旁的10
  • android 卡片滑动详情页,在Mugeda中制作顺畅的左右滑动切换卡片效果的教程

    之前在做 刁角武汉 的时候对如何选择景点这个问题做了好几个方案 一个是画一张大地图 另一个是做垂直的列表选择 但我还是选择了左右滑动来切换景点 因为在多次尝试之后发现发现在手机屏上似乎不适合做可以上下左右滑动的大地图 而垂直列表在 Muge
  • QThread 事件循环

    对QThread的run函数描述如下 The run implementation is for a thread what the main entry point is for the application All code exec
  • matlab练习程序(最大中值滤波)

    clear clc width 3 xwidth width 1 2 imgn imread 1 bmp imshow imgn imgn double imgn m n size imgn imgn1 imgn z zeros 4 wid
  • java面经整理

    面试问题 一 Java基础 1 jdk1 7到jdk1 8HashMap发生了什么变化 底层 2 jdk1 7到jdk1 8虚拟机发生了什么变化 3 String StringBuilder StringBuffer 4 ArrayList
  • 为什么SELECT * 会导致查询效率低?

    无论在工作还是面试中 关于SQL中不要用 SELECT 都是大家听烂了的问题 虽说听烂了 但普遍理解还是在很浅的层面 并没有多少人去追根究底 探究其原理 废话不多说 本文带你深入了解一下 SELECT 效率低的原因及场景 一 效率低的原因
  • 用Python和selenium下载pdf文件

    今天要从国外的网站上下载一个学术会议的几百篇pdf文献 具体网址为https www onepetro org conferences SPE 17ADIP all start 0 rows 700 这个网站需要登录后手动一篇一篇的下载 非
  • 使用ssh直连docker容器的方法 :解决Connection refused报错

    以root權限進入到docker后重啓ssh服務即可重啓ssh服務 docker exec it u root 容器号 bin bash 重啓ssh服務 service ssh restart
  • Apache Flink SQL 详解与实践

    问题导读1 为何会有Flink SQL 2 本文哪些地方涉及Flink 1 7 4 如何定义源 sources 和接收器 sinks 5 Flink SQL本文介绍了哪些sql 6 将数据格式化为正确的格式以便进一步处理 7 如何监控Fli
  • Qt 多线程基础及线程使用方式

    文章目录 Qt 多线程操作 2 线程类QThread 3 多线程使用 方式一 4 多线程使用 方式二 5 Qt 线程池的使用 Qt 多线程操作 应用程序在某些情况下需要处理比较复杂的逻辑 如果只有一个线程去处理 就会导致窗口卡顿 无法处理用
  • 在上传文件的同时 传递参数 (ajax上传文件并传值给后台)

    之前用的ajax方法上传文件 结果这边需要对上传文件进行分类和关键字处理 话不多说直接上代码了 前端html以及js部分 fieldset legend 文件信息 legend table class table style width 1
  • kaggle Airbus Ship Detection Challenge 船舶检测实战(1):提取正样本

    报名参加了kaggle 8月的最新比赛 Airbus Ship Detection Challenge 发现有人已经开源把准确率提高到了84 怀着 知其不可而为之 的勇气 还是把这个比赛当作了kaggle比赛的首战 第一天的工作 提取正样本
  • flutter Flexible和 Expanded的区别

    Flexible 例如 如下 你定义的控件 高度是 25 但是不同的手机显示 尺寸可能报越界 这是用 Flexible 就可以自适应高度 后 也许实际效果展示高度是 SizedBox height 10 经常使用于自定于dialog 展示
  • MySQL面试题总结

    一 逻辑架构 MySQL 架构中的三层服务 第一层是服务器层 主要提供连接处理 授权认证 安全等功能 第二层实现了 MySQL 核心服务功能 包括查询解析 分析 优化 缓存以及日期和时间等内置函数 第三层是存储引擎层 负责数据的存储和提取
  • 序列自相关矩阵的计算和分析

    序列自相关矩阵的计算和分析 这几天在搞DSP的时候遇到的一些问题 略微整理了一下 在下文中 你将会看到 平稳过程究竟有什么意义 随机信号处理是怎样与固定信号分析联系起来的 自相关函数的定义 自相关矩阵的意义和计算 平稳过程 平稳过程是现代数
  • 【DeepSpeed 教程翻译】三,在 DeepSpeed 中使用 PyTorch Profiler做性能调试和Flops Profiler教程翻译

    文章目录 0x0 前言 0x1 在 DeepSpeed 中使用 PyTorch Profiler做性能调试 Profile模型训练的循环 标记任意代码范围 Profile CPU GPU的活动 Profile 内存消耗 0x2 Flops
  • 【计算机网络04】传输层之UDP

    文章目录 1 TCP和UDP的对比 2 UDP数据格式 2 1 UDP长度 Length 2 2 检验和 Checksum 3 端口 Port 1 TCP和UDP的对比 传输层有2个协议 TCP Transmission Control P
  • 分布式+集群方式部署项目(nginx)

    分布式 把不同的业务分布在不同的服务器 集群 多台服务器实现同一个业务 分布式 集群解决了 多并发 单点故障 处理效率慢 tomcat不擅长处理静态资源 它把静态资源当动态资源处理 需要采用动静分离的办法解决 Nginx Nginx是一个俄