haproxy-keepalived-centos7.9相关功能实现

2023-11-09

nginx和haproxy的异同点

ng和ha工作原理图

不同点:

◆nginx可工作在四层和七层,haproxy一般工作在四层,haproxy作为负载均衡器性能比nginx优秀,如果有条件建议四层单独跑haproxy;
◆二者的定位不同:ha定位就是负载均衡器;而ng定位是web服务;
◆二者的编程规则不同,nginx每行都要加分号隔开,而haproxy不用,注意书写规范,一个key,一个value即可;
◆ng的命令类似于编程语言,很好扩展,支持js/perl等脚本,也可自行编写模块进行编译;ha可扩展功能比较少,支持ACL;
◆nginx多进程模式下工作,每个进程也可以有多子线程,可以绑定CPU防止惊群效应;haproxy是多线程,单进程性能也可以, haproxy也能多进程。
◆haproxy升级服务器比较简单,写脚本直接升级,不用重启;nginx,要改文件,然后reload。

相同点:

◆二者功能相近,支持的传输协议(http/tcp/udp)相近;
◆二者都是是用C语言开发

实现haproxy四层地址透传,并且做基于cookie的会话保持

首先编译安装haproxy(略),这里只贴出编译安装的依赖

yum install gcc gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel net-tools vim iotop bc zip unzip zlib-devel rzsz tree screen 1sof tcpdump wget ntpdate -y

安装路径:

在这安装路径:里插入图片描述

验证版本

[root@10 haproxy-2.2.25]# /apps/haproxy/sbin/haproxy -v

haproxy.service 文件配置

vim /usr/lib/systemd/system/haproxy.service
[Unit]
Description=HAProxy Load Balancer
After=syslog.target network.target

[Service]
ExecStartPre=/apps/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg -c -q
ExecStart=/apps/haproxy/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /var/lib/haproxy/haproxy.pid
ExecReload=/bin/kill -USR2 $MAINPID

[Instal1]
WantedBy=multi-user.target
~                                                                                                                                                                           
~      

haproxy.cfg配置文件内容

 global
maxconn 100000
chroot /apps/haproxy
stats socket /var/lib/haproxy/haproxy.sock mode 600 level admin
uid 99
gid 99
daemon
#nbproc 4
#cpu-map 10
#cpu-map 21
#cpu-map 32
#cpu-map 43
pidfile /var/lib/haproxy/haproxy.pid
log 127.0.0.1 local3 info

defaults
option http-keep-alive
option forwardfor
maxconn 100000
mode http
timeout connect 300000ms
timeout client 300000ms
timeout server 300000ms

listen stats
 mode http
 bind 0.0.0.0:9999
 stats enable
 log global
 stats uri /haproxy-status
 stats auth haadmin:qlw2e3r4ys
 
 listen web_port
 bind 10.0.0.133:80
 mode http
 log global
 server web1 127.0.0.1:8080 check inter 3000 fall 2 rise 5

~                                                                                                                                                                           
~       

重启Haproxy会出现一个报错: [ALERT] 146/132210 (3443) : Starting frontend Redis: cannot bind socket [0.0.0.0:6379]*

解决办法:(引用网络),并且将apache或nginx等WEB服务关闭
vim /etc/sysctl.conf        #修改内核参数
net.ipv4.ip_nonlocal_bind = 1  #没有就新增此条记录
sysctl -p        #保存结果,使结果生效

重启访问9999端口
http://10.0.0.132:9999/haproxy-status

输入账号:haadmin 密码:qlw2e3r4ys,效果:
在这里插入图片描述

四层地址透传

思维导图:四层地址透传

10.0.0.132配置:

在这里插入图片描述
重启ha:systemctl restart haproxy

web服务器10.0.0.133 nginx.conf设置:

vim /apps/nginx/conf/nginx.conf
log_format access_json '{"etimestamp":"Stime_iso8601",'
    '"host":"$server_addr",'
    '"clientip":"$remote_addr",'
    '"size":$body_bytes_sent,'
    '"responsetime":$request_time,'
    '"upstreamtime":"$upstream_response_time",'
    '"upstreamhost":"$upstream_addr",'
    '"http_host":"$host",'
    '"uri":"$uri",'
    '"domain":"$host",'
    '"xff":"$http_x_forwarded_for",'
    '"referer":"$http_referer",'
    '"tcp_xff":"$proxy_protocol_addr",'
    '"http_user_agent":"$http_user_agent",'
    '"status":"$status"}';
  access_log /apps/nginx/logs/access_json.log access_json;

nginx.conf中新增日志格式

server{
     listen      80 proxy_protocol;

server中新增内容

使用浏览器访问haproxy服务器地址

在这里插入图片描述

web服务器重载

[root@10 conf]# /apps/nginx/sbin/nginx -s reload

查看web服务器日志

tail -f /apps/nginx/logs/access_json.log

在这里插入图片描述
可以看到web服务器已经获取到了前端的地址。

基于cookie的会话保持

hapoxy服务器(132)配置:

vim /etc/haproxy/haproxy.cfg

添加cookie信息

133web服务器注释添加信息,使nginx正常访问

注释掉此信息

重启haproxy,访问132,查看cookie信息,还是保持访问133,这种情况下除非删除cookie,否则一点时间的分流都会保持传递给目标主机.

在这里插入图片描述

实现自定义错误页面和https的实验

在这里插入图片描述

修改haproxy.conf配置文件,在defaults这里插人:


errorfile 500 /usr/local/haproxy/html/500.html
errorfile 502 /usr/local/haproxy/html/502.html
errorfile 503 /usr/1ocal/haproxy/html/503.html
入代码片

在这里插入图片描述

创建报错界面文件:

vim /usr/1ocal/haproxy/html/503.html

文件内容:

HTTP/1.1 503 Service Unavailable
Content-Type:text/html;charset=utf-8

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>精彩内容,敬请期待</title>
</head>
<body>
<h1>页面维护中</h1>
<h2>503 请联系YK:186068760</h2>
</body>
</html>

在这里插入图片描述
访问:sorryserver地址
在这里插入图片描述
OK,升级报错都可以指向这个页面,一般都是一个error服务器,使用公网地址。

haproxy实现https:

创建证书:

[root@10 usr]# cd ..
[root@10 /]# cd /apps/
[root@10 apps]# ll
total 0
drwxr-xr-x. 5 root root 42 Oct 25 19:50 haproxy
[root@10 apps]# cd haproxy/
[root@10 haproxy]# ll

在这里插入图片描述

[root@10 haproxy]# mkdir certs
[root@10 haproxy]# cd certs/
[root@10 certs]# openssl genrsa -out haproxy.key 2048
[root@10 certs]# openssl req -new -x509 -key haproxy.key -out haproxy.crt -subj "/CN=www.magedu.net"
[root@10 certs]# cat haproxy.key haproxy.crt >  haproxy.pem #查看证书的签发信息

证书签发信息

[root@10 certs]# openssl x509 -in haproxy.pem -noout -text

在这里插入图片描述[root@10 certs]# chmod 600 haproxy.* #安全一些 在这里插入图片描述

133、134web服务器启动nginx

[root@10 ~]# systemctl start nginx
[root@10 ~]# systemctl status nginx

添加https访问服务器:

在这里插入图片描述
穿透
自建证书信息,比nginx简便
一般证书都放在nginx服务器

完成keepalived的单播非抢占多主机高可用IP, 抢占邮件通知。

keepalived 的单播非抢占多主机高可用IP

取决于VIP位于哪台机器(master(但最终取决于优先级(pri)))
![原理图](https://img-blog.csdnimg.cn/e023cc615e374941b759d508b2448408.png

安装keepalived

yum install keepalived -y 
systemctl start keepalived      #启动

keepalived启动不起来,重启一次OK

非抢占实现:keepalived配置:132、133机器:

vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 43
    priority 222
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
         10.0.0.188/24 dev ens33 label ens33:0
         10.0.0.189/24 dev ens33 label ens33:1
    }
}

重启之后报错:Cant find interface eth0 for vrrp_instance VI_1 !!!
解决办法:每个系统的网卡名称都不一样,找到自己的网卡文件,绑定在网卡子接口就OK

在这里插入图片描述
重启keepalived,可以看到VIP已经绑定到132机器
在这里插入图片描述

优先级配置(0-255)

在这里插入图片描述

测试VIP:

在这里插入图片描述#### 取消vrrp限制:
注释strict限制

133机器的配置:

在这里插入图片描述#### 优先级高的配置:nopreempt #关闭VIP抢占,需要各服务器state为BACKUP,centos7.9主从都要添加nopreempt 字段

在这里插入图片描述重启服务,132停掉,133看日志
在这里插入图片描述
VIP会迁移到133上:
132重启keep,看看会不会抢占回去,
在这里插入图片描述
不会重新抢占,完成

邮件通知:

yum install mailx -y
 vim /etc/mail.rc 

邮箱开启服务:

在这里插入图片描述

记录邮箱授权码

邮箱授权码

keep配置:

set from=XXXXX@qq.com
set smtp=smtp.qq.com 
set smtp-auth-user=XXXXXX@qq.com
set smtp-auth-password=iofithjlbiytbdfb 
set smtp-auth=login 
set ssl-verify=ignore

在这里插入图片描述

测试发送邮件

echo "testmail" | mail -s "mail for m43" XXXXX@qq.com

在这里插入图片描述
成功

配置邮件脚本

[root@10 etc]# cd keepalived/
[root@10 keepalived]# vim keepalived_notify.sh

#!/bin/bash 
contact='568656476@qq.com'
notify(){
  mailsubject="$(hostname)to be $1,vip转移"
  mailbody="$(date +'%F %T'):vrrp transition,$(hostname) changed to be $1"
echo "$mailbody" | mail -s "$mailsubject" $contact 
}
case $1 in
 master)
  notify master
  ;;
backup)
  notify backup
  ;;
fault)
  notify fault
   ;;
*)
echo "Usage: $(basename $0){master|backup|fault}"
exit 1
 ;;
esac

脚本测试

bash keepalived_notify.sh master

OK
在这里插入图片描述

配置调用脚本

[root@10 keepalived]# vim keepalived.conf
notify_master "/etc/keepalived/keepalived_notify.sh master"
notify_backup "/etc/keepalived/keepalived_notify.sh backup"   
notify_fault "/etc/keepalived/keepalived_notify.sh fault"

配置位置

 chmod a+x /etc/keepalived/keepalived_notify.sh    #路径可执行权限
关闭132机器keep,造成master切换,观察邮箱:可以了

在这里插入图片描述

完成lvs + keepalived 高可用配置

原理图

132机器配置:

vim /etc/keepalived/keepalived.conf

在这里插入图片描述

virtual_server 10.0.0.188 80 {
  delay_loop 6
  lb_algo wrr
  lb_kind DR
  #persistence_timeout 120#会话保持时间
  protocol TCP
#sorry_server 172.18.200.105 80
real_server 10.0.0.136 80 {
  weight 1
  TCP_CHECK { 
    connect_timeout 60
    nb_get_retry 3
    delay_before_retry 1
    connect_port 80
  }
}

real_server 10.0.0.137 80 {
  weight 1
  TCP_CHECK { 
    connect_timeout 60
    nb_get_retry 3
    delay_before_retry 1
    connect_port 80
  }
}
}

重启keep

安装ipvsadm

yum install ipvsadm
ipvsadm -Ln     #查看问服务器挂载成功

后端web挂载成功

配置好后端环境:nginx并测试

测试OK

后端服务器绑定VIP:脚本:136上:

[root@10 html]# vim ipvs-dr.sjh
[root@10 html]# bash ipvs-dr.sjh start

#!/bin/sh
#LVSDR模式初始化脚本
#Zhang yk:2017-08-18
LVS_VIP=10.0.0.188
source /etc/rc.d/init.d/functions
case "$1" in
start)
   /sbin/ifconfig lo:0 $LVS_VIP netmask 255.255.255.255 broadcast $LVS_VIP
   /sbin/route add -host $LVS_VIP dev lo:0
   echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
   echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce       
   echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore   
   echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
   sysctl -p >/dev/null 2>&1
   echo "RealServer Start OK"
   ;;
stop)
    /sbin/ifconfig lo:0 down
    /sbin/route del $LVS_VIP >/dev/null 2>&1
    echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore 
    echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
    echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore    
    echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce 
    echo "RealServer Stoped"
    ;;
*)    
    echo"Usage: $0 {start|stop}"
    exit 1
esac 
exit 0

拷贝到相邻web137上
[root@10 html]# scp ipvs-dr.sjh 10.0.0.137:/root/

双机运行:

[root@10 ~]# bash ipvs-dr.sjh start

运行成功
通过VIP地址访问到了后台nginx服务器,成功,这个时候将132机器stop,依然可以访问188
成功
停掉132机器后,依然可以访问
在这里插入图片描述

完成lvs + nginx 高可用配置

环境准备

使用133、134,因为本来就有ngnx,将133的LVS配置删掉,准备环境:nginx

[root@10 /]# cd usr/local/src
[root@10 src]# cd nginx-1.18.0/
[root@10 nginx-1.18.0]# vim /apps/nginx/conf/nginx.conf

upstream m43 {
  server 10.0.0.136:80;
  server 10.0.0.137:80;
}

在这里插入图片描述
proxy_pass http://m43;
在这里插入图片描述

检测脚本:

vrrp_script chk_nginx{
script "/etc/keepalived/chk_nginx.sh"
interval 1
weight -80
fall 3
rise 5
timeout2
}
track_script {
chk_haproxy
}

运行脚本

yum install psmisc -y
cat /etc/keepalived/chk_nginx. sh
chmod a+x /etc/keepalived/chk_nginx. sh
bash chk_nginx. sh

访问后端服务器:

在这里插入图片描述
关掉132机器,依然可以访问。

如果觉得对您有用,请点个赞吧 ↓↓↓

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

haproxy-keepalived-centos7.9相关功能实现 的相关文章

  • Docker 与 nginx 组合不断显示欢迎页面

    我是新来的docker并尝试使用最简单的 docker compose yml 显示一个 hello world 页面 并在此基础上构建最终完整的LEMP堆栈它将与我的服务器具有相同的配置 然而大多数教程已经过时 并且有很多使用方法dock
  • Kong - 验证上游 ssl(ssl_proxy 打开)

    我已经成功为 API 安装了 kong 网关 该 API 通过上游负载平衡到多个目标 应用程序服务器 现在 我有一个我的应用程序服务器的自签名证书 kong 和目标之间的 ssl 握手应该失败 我推断 kong 不验证上游证书 经过一些研究
  • NGINX 与 Tomcat 配置

    我是 Nginx 新手 我需要你的帮助 根据很多论坛我了解到我们所有的静态页面都存储在Nginx中 当有请求到来时 我必须将该请求传递给 tomcat 获取数据 并在 tomcat 生成响应后生成响应 目前 我刚刚做到了 我将请求直接传递给
  • nginx 将虚拟目录重写为文件

    这应该很容易做到 但我的头撞在墙上了 如果我收到对 www mysite com mypath 的请求 我想提供 www mysite com myotherpath thisfile html 的内容 我如何使用 nginx 配置来做到这
  • Nginx反向代理(proxy_pass)不传递子文件夹

    我想在子文件夹配置中运行应用程序 Mattermost 例如 https www example com mattermost https www example com mattermost location mattermost gzi
  • kubernetes 集群中 django 应用程序的 Nginx 配置

    我在为部署在 kubernetes 中的 django 应用程序创建 nginx 配置文件时遇到困难 Nginx 和 app 是同一集群中的两个独立容器 据我了解 容器可以通过 127 0 0 1 XX 和主机名相互通信 我为此使用 min
  • nginx 反向代理 websocket

    nginx 现在支持代理 websockets 但我无法找到任何有关如何在没有单独的情况下执行此操作的信息location应用于使用 websocket 的 URI 的块 我见过一些人推荐这种方法的一些变体 location proxy h
  • 使用 Nginx 或 Apache 来提供动态内容? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 错误:从上游读取响应标头时上游过早关闭连接 [uWSGI/Django/NGINX]

    我目前在用户正在进行的查询中总是得到 502 它通常返回 872 行 在 MySQL 中运行需要 2 07 然而 它返回了大量信息 每一行包含很多东西 有任何想法吗 运行 Django tastypie Rest API Nginx 和 u
  • 找不到 NGINX brew 安装命令

    I do brew install nginx and get gt Downloading http nginx org download nginx 1 2 2 tar gz Already downloaded Library Cac
  • nginx 和 uwsgi 非常大的文件上传(>3Gb)

    也许有人知道该怎么做 我正在尝试上传大于 3Gb 的文件 没问题 如果我使用以下配置上传高达 2Gb 的文件 Nginx client max body size 5g client body in file only clean clie
  • 连接到上游时 Nginx 错误:(13:权限被拒绝)

    我在我的中收到此错误nginx error log file 2014 02 17 03 42 20 crit 5455 0 1 connect to unix tmp uwsgi sock failed 13 Permission den
  • Kubernetes Ingress 在 nginx 反向代理后面运行

    我已经在可以从互联网访问的服务器上安装了 minikube 我创建了一个可用的 kubernetes 服务 gt kubectl get service myservice NAME CLUSTER IP EXTERNAL IP PORT
  • Django + nginx + uwsgi 无法登录

    我有非常简单的登录逻辑 类似于官方 Django 解决方案 class Login FormView template name login html form class AuthenticationForm def get self a
  • Logrotate - nginx 日志不在 docker 容器内旋转

    我有一个运行 nginx 的 docker 容器 它正在将日志写入 var log nginxLogrotate 安装在 docker 容器中 并且 nginx 的 logrotate 配置文件已正确设置 尽管如此 logrotate 仍不
  • nginx 上的多个网站和可用网站

    通过 nginx 的基本安装 您的sites available文件夹只有一个文件 default 怎么样sites available文件夹的工作原理以及如何使用它来托管多个 单独的 网站 只是为了添加另一种方法 您可以为您托管的每个虚拟
  • 为什么我会收到 ElasticBeanstalk::ExternalInitationError?

    我的应用程序基于 RubyOnRails 构建 并使用乘客部署为弹性 beanstalk 应用程序 我尝试向 nginx 服务器添加标头并重新启动它 这是我的配置文件 是 aws elastic beanstalk 中 ebextensio
  • Nginx url 限制 502 网关

    我有一个问题 但我接受绕过此功能的其他建议 基本上 我在 get 请求中向我的服务器发送大约 3000 个字符的大行文本 然后服务器将其作为 url 中的参数发送到谷歌翻译 问题 当 url gt 1900 个字符时 Nginx 会抛出 5
  • NGinx $proxy_add_x_forwarded_for 和 real_ip_header

    我在 NGinx 下有一个 web 应用程序和另一个前端负载均衡器 如下所示 x x x x IP 地址 客户端 a a a a gt LB b b b b gt NGX c c c c gt WEBAPP d d d d 这是我的 NGi
  • 使用查询参数值进行 NGINX 301 重定向

    我想重定向example com lang en to example com en 我正在使用 Python Django 我的服务器运行 Plesk Nginx 我尝试像这样在我的网页上重定向 但这是行不通的 rewrite lang

随机推荐

  • 关于单片机位数的思考(8位、16位、32位)

    关于单片机位数的思考 8位 16位 32位 8位 16位 32位是指单片机的 字长 也就是一次运算中参与运算的数据长度 这个位是指二进制位 以8位为例 8位二进制的表达范围是0000 0000 1111 1111即十进制的0 255 即每次
  • 【Python】Pandas DataFrame 一维表二维表的转换

    目录 一 stack unstack unstack 将一维表转换为二维表 stack 将二维表转换为一维表 二 pivot melt pivot 将一维表转换为二维表 melt将二维表转换为一维表 Tips 用pandas处理数据 我们经
  • angularJS1笔记-(3)-购物车增删改查练习

    html div class container table class table table div
  • linux驱动开发(四):ioctl()函数

    前文中我们介绍了应用程序通过使用虚拟文件系统VFS提供的接口 来控制字符驱动程序 完成字符驱动设备的open close read write操作 但是如果我们想进行除此以外的其他操作 拓展一些file operations给出的接口中没有
  • 实时目标追踪:ByteTrack算法步骤详解和代码逐行解析

    文章目录 ByteTrack算法简介 算法步骤分析 算法框架流程 一 对追踪轨迹和边界框进行分类 二 对轨迹进行第一次追踪 仅针对激活状态的轨迹的高分匹配 三 对轨迹进行第二次追踪 仅针对激活状态的轨迹的低分匹配 四 对未激活状态的轨迹进行
  • 电脑提示找不到MSVCR120.dll 简单解决方法,亲测有效!

    msvcr120 dll是windows系统的一部分 它是Windows操作系统中的一个动态链接库文件 该文件包含了一些在运行使用了C 语言编写的程序时所需的函数和资源 当系统无法找到或加载msvcr120 dll文件时 会导致相关程序无法
  • 学Vue和Node.js的一点感想-[2019-01-03 10:38]

    这几天公司换了前端框架 就是打算使用Vue Vuetifyjs 来构建前端 稀里糊涂的学了点Node js 在这里记录一下感想 Vue说是是一套构建用户界面的渐进式框架 Vue 只关注视图层 采用自底向上增量开发的设计 Vue 的目标是通过
  • Linux--信号量

    1 信号量的定义 信号量是一个特殊的变量 一般取正数值 它的值代表允许访问的资源数目 获取资源时 需要对信号量的值进行原子减一 该操作被称为p操作 当信号量值为0时 代表没有资源可用 p操作会阻塞 释放资源时 需要对信号量的值进行原子加一
  • 【计算机视觉

    文章目录 一 Electronics Object Image Dataset Computer Parts datacluster ai 二 Hindi Text Image Dataset Hindi in the wild datac
  • 华为OD机试题库 2023 2022 备忘录

    华为OD机试 2023 快递投放问题 C Java JavaScript Python 华为OD机试 2023 优秀学员统计 C Java JavaScript Python 华为OD机试 2023 上班之路 是否能到达公司 C Java
  • qjason

    写了例子 解释也在例子里面 例子传在资源里面了
  • 传输层协议TCP和UDP协议

    TCP和UDP协议 TCP协议 1 TCP报文段 UDP协议 TCP的 三次握手 和 四次挥手 1 三次握手 2 四次挥手 TCP协议 TCP 协议是面向连接的 可靠的进程到进程通信的协议 TCP提供全双工服务 每一个TCP都有发送缓存和接
  • 如何安装免费https证书

    主页 可以防止数据在传输过程中产生的隐私泄露的问题 原来的网站在经过ssl证书的签发后会变成https开头 下面记录一下配置https加密的整个过程 文章目录 购买域名 设置https加密 购买域名 首先第一步我们为了防止自己的公网ip暴露
  • 位图Bitmap

    位图图像 bitmap 亦称为点阵图像或绘制图像 是由称作像素 图片元素 的单个点组成的 这些点可以进行不同的排列和染色以构成图样 当放大位图时 可以看见赖以构成整个图像的无数单个方块 扩大位图尺寸的效果是增大单个像素 从而使线条和形状显得
  • 配置SSH服务器使用证书登录

    服务器端配置 https www cnblogs com gyjerry p 7275242 html 客户端公钥对生成 https docs github com en github ae latest authentication co
  • python中length用法_为什么Python代码使用len()函数而不是length方法?

    为什么Python代码使用len 函数而不是length方法 我知道python有一个 len 函数 用于确定字符串的大小 但我想知道为什么它不是字符串对象的方法 更新 好吧 我意识到我很尴尬 len 实际上是一个字符串对象的方法 使用字符
  • python连接hive kerberos_JDBC 连接Hive 简单样例(开启Kerberos)

    今天在移动的云平台上通过jdbc连接hive 发现云平台使用了 kerberos的认证 与宁波实验环境不同 发现一文解决了问题 转载如下
  • IBM刀片服务器虚拟化方案

    一 IBM eServer x系列服务器的虚拟化解决方案 在IBM eServer x系列服务器上的虚拟化采用了VMware软件解决方案 通过VMware软件 搭建在操作系统和应用 以及物理平台之间的抽象层 使得每个物理系统上可运行多个虚拟
  • console.log打印结果是 [object Object] 的解决方案

    学习笔记使用 自己看的 下图是前端打印data数据的 console log data 6666666666666111 打印的时候 不能用 号 要用 使用 号的话 在控制台就会发现 输出的是 object Object console l
  • haproxy-keepalived-centos7.9相关功能实现

    nginx和haproxy的异同点 不同点 nginx可工作在四层和七层 haproxy一般工作在四层 haproxy作为负载均衡器性能比nginx优秀 如果有条件建议四层单独跑haproxy 二者的定位不同 ha定位就是负载均衡器 而ng