当前位置: 首页 > news >正文

常用知识点问答

目录

描述 Nginx location转发时root和alias指定路径的区别?

LVS Haproxy Nginx负载均衡都有哪些常用的调度算法?(每种要求不少于5个)

Nginx 4层反向代理和7层反向代理有什么区别?以及如何配置?

如何实现Nginx负载均衡的高可用? 具体描述

LVS有些哪些模式?这些模式有什么区别?

Nginx和Haproxy如何实现会话保持?(每种要求不少于3个)

Nginx Tomcat 做过哪些优化? 从应用配置,内核,JVM 几个方面进行阐述(每种要求不少于4个)

描述 keepalived 工作原理? 基于什么协议? 如何选举出MASTER? 怎么处理脑裂问题?


描述 Nginx location转发时root和alias指定路径的区别?

  • root指定路径的转发处理方式: root路径 追加 location路径 net.ipv4.tcp_syncookies
  • alias指定路径的转发处理方式:alias路径 替换 location路径

LVS Haproxy Nginx负载均衡都有哪些常用的调度算法?(每种要求不少于5个)

  • LVS   rr  wrr  lc  wlc  sh  dh  lblc  sed  ne
  • Haproxy   roundrobin   static-rr   leastconn   source   uri   url_param   hdr   rdp-cookie
  • Nginx   轮询   加权轮询    least_conn    ip_hash    url_hash   fair   random

Nginx 4层反向代理和7层反向代理有什么区别?以及如何配置?

  • 四层反向代理:基于 IP 和 端口 实现的代理转发
  • 七层反向代理:根据用户访问请求的URL路径,基于http等七层应用协议的代理转发
  • 四层反向代理配置:编译安装时需要添加stream四层代理模块,配置时在http配置块同层级添加stream配置块,在stream配置块里使用upstream定义后端服务器列表名称和节点参数,再使用server配置块里使用listen定义监听端口和使用proxy_pass配置转发
  • 七层反向代理配置:在http配置块中使用upstream定义后端服务器列表名称和节点参数,在server配置块中使用location匹配用户请求的URL路径,使用proxy_pass基于协议配置转发

如何实现Nginx负载均衡的高可用? 具体描述

  • 需要在两个Nginx负载均衡服务器上安装keepalived,还要编写用于给nginx进程运行状态做健康检查和故障切换的shell脚本,然后在keepalived配置文件中调用shell脚本,从而实现Nginx负载均衡的高可用。

LVS有些哪些模式?这些模式有什么区别?

  • NAT 地址转换     TUN IP隧道       DR 直接路由
  • NAT 既是客户端的访问入口,也是节点服务器返回响应消息的出口,因此可能会负载均衡器成为整个群集的性能瓶颈
  • TUN 仅作为客户端的访问入口,节点服务器的响应消息是直接返回给客户端的,不需要经过负载均衡器;负载均衡器和节点服务器还需要通过专用的IP隧道相互通信
  • DR 仅作为客户端的访问入口,节点服务器的响应消息是直接返回给客户端的,不需要经过负载均衡器;负载均衡器和节点服务器相互通信不需要专用的IP隧道

Nginx和Haproxy如何实现会话保持?(每种要求不少于3个)

nginx

  • Nginx  ip_hash 或 一致性hash算法 基于客户端IP做hash缓存实现会话保持;
  • 使用 sticky_cookie_insert 基于cookie来判断实现会话保持;
  • 使用缓存数据库为后端节点服务器做session同步复制实现会话保持

haproxy

  • 调度算法使用 source(源地址hash)
  • 后端组配置使用 设置cookie  
  • 后端组配置使用 会话粘性表stick-table

Nginx Tomcat 做过哪些优化? 从应用配置,内核,JVM 几个方面进行阐述(每种要求不少于4个)

nginx配置 开启网页压缩(gzip on)   页面缓存(expires)   IO多路复用(use epoll)   隐藏版本号(server_tokens off)    防盗链(rewrite)   ....
tomcat配置   maxThreads(最大线程数)   acceptCount(等待队列数)     connectionTimeout(连接保持超时时间)     enableLookups(关闭DNS反向查询)    compression(网页压缩)   .....
内核  /etc/security/limits.conf(内核限制文件) nofile  noproc   
      /etc/sysctl.conf(内核参数配置文件)    net.ipv4.tcp_syncookies   net.ipv4.tcp_tw_reuse   net.ipv4.tcp_tw_recycle   net.ipv4.tcp_fin_timeou  
                                            net.ipv4.tcp_max_tw_buckets   net.ipv4.ip_local_port_range  .....
JVM  -server(使多核服务器CPU性能更佳)    -Xms -Xmx(设置JVM堆内存初始值和最大值,设置为一样大,一般为物理内存的1/2)
-XX:PermSize -XX:MaxPermSize(设置非堆内存初始值和最大值,设置为一样大,一般为物理内存的1/4)
-Xmn(设置JVM堆内存新生代的大小,一般为堆内存的3/8)
-XX:ParallelGCThreads=2(设置并行GC垃圾回收的线程数,提高垃圾回收效率,一般为CPU的数量相同)

描述 keepalived 工作原理? 基于什么协议? 如何选举出MASTER? 怎么处理脑裂问题?

  • 基于VRRP协议实现的高可用方案,优先级决定主备服务器的角色,主服务器通过VIP接收客户端发送的连接请求并转发,同时还定时给备服务器发送VRRP报文告知自己的存活状态。当主服务器发送故障,则由备服务器接替主服务器的角色继续提供服务,从而保证服务的高可用。
  • VRRP协议
  • 初始化时 state 设置 MASTER 为主,BACKUP 为备;最终再通过比较优先级来选举,优先级最高的为MASTER
  • 直接关闭 MASTER 或 BACKUP 其中一台上的 keepalived 服务

相关文章:

  • 【Spring Boot】Java 持久层 API:JPA
  • 数据结构-第七章(B树和B+树)
  • 每日一道算法题 判断子序列
  • linux 环境报错:Peer reports incompatible or unsupported protocol version
  • sheng的学习笔记-hadoop,MapReduce,yarn,hdfs框架原理
  • 不使用AMap.DistrictSearch,通过poi数据绘制省市县区块
  • 巴西市场有哪些电商平台?巴西最畅销的产品有哪些?
  • 揭秘,PyArmor库让你的Python代码更安全
  • Linux 程序打包
  • 时尚品牌GOODBAI好人好事系列纪录片——Jupiter乐队的热血与梦想
  • ubuntu 18 虚拟机安装(3)安装mysql
  • Hadoop3:参数调优-核心参数NameNode内存配置、并发数配置、回收站配置
  • JAVA学习-练习试用Java实现“天际线问题”
  • Linux Ubuntu 20.04.06 安装Onboard虚拟键盘教程
  • gitignore
  • CEF与代理
  • CentOS7简单部署NFS
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • Java精华积累:初学者都应该搞懂的问题
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • Otto开发初探——微服务依赖管理新利器
  • Python3爬取英雄联盟英雄皮肤大图
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • Spring Cloud中负载均衡器概览
  • SpringBoot几种定时任务的实现方式
  • ubuntu 下nginx安装 并支持https协议
  • 番外篇1:在Windows环境下安装JDK
  • 翻译--Thinking in React
  • 官方解决所有 npm 全局安装权限问题
  • 记一次用 NodeJs 实现模拟登录的思路
  • 如何学习JavaEE,项目又该如何做?
  • 通过几道题目学习二叉搜索树
  • 微信小程序:实现悬浮返回和分享按钮
  • 我的zsh配置, 2019最新方案
  • 我感觉这是史上最牛的防sql注入方法类
  • 原生js练习题---第五课
  • NLPIR智能语义技术让大数据挖掘更简单
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • ###STL(标准模板库)
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • $nextTick的使用场景介绍
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (精确度,召回率,真阳性,假阳性)ACC、敏感性、特异性等 ROC指标
  • (十一)c52学习之旅-动态数码管
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .Net 4.0并行库实用性演练
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .net core使用ef 6
  • .net FrameWork简介,数组,枚举
  • .Net开发笔记(二十)创建一个需要授权的第三方组件
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48