Haproxy

1. HAProxy是什么

官网: https://www.haproxy.org/

HAProxy是一个免费的负载均衡软件,可以运行于大部分主流的Linux操作系统上。

HAProxy提供了L4(TCP)和L7(HTTP)两种负载均衡能力,具备丰富的功能。HAProxy的社区非常活跃,版本更新快速(最新稳定版1.7.2于2017/01/13推出)。最关键的是,HAProxy具备媲美商用负载均衡器的性能和稳定性。

2. HAProxy的核心能力和关键特性

HAProxy的核心功能
负载均衡:L4和L7两种模式,支持RR/静态RR/LC/IP Hash/URI Hash/URL_PARAM Hash/HTTP_HEADER Hash等丰富的负载均衡算法
健康检查:支持TCP和HTTP两种健康检查模式
会话保持:对于未实现会话共享的应用集群,可通过Insert Cookie/Rewrite Cookie/Prefix Cookie,以及上述的多种Hash方式实现会话保持
SSL:HAProxy可以解析HTTPS协议,并能够将请求解密为HTTP后向后端传输
HTTP请求重写与重定向
监控与统计:HAProxy提供了基于Web的统计信息页面,展现健康状态和流量数据。基于此功能,使用者可以开发监控程序来监控HAProxy的状态
  • HAProxy的关键特性

性能
采用单线程、事件驱动、非阻塞模型,减少上下文切换的消耗,能在1ms内处理数百个请求。并且每个会话只占用数KB的内存。
大量精细的性能优化,如O(1)复杂度的事件检查器、延迟更新技术、Single-buffereing、Zero-copy forwarding等等,这些技术使得HAProxy在中等负载下只占用极低的CPU资源。
HAProxy大量利用操作系统本身的功能特性,使得其在处理请求时能发挥极高的性能,通常情况下,HAProxy自身只占用15%的处理时间,剩余的85%都是在系统内核层完成的。
HAProxy作者在8年前(2009)年使用1.4版本进行了一次测试,单个HAProxy进程的处理能力突破了10万请求/秒,并轻松占满了10Gbps的网络带宽。

稳定性
作为建议以单进程模式运行的程序,HAProxy对稳定性的要求是十分严苛的。按照作者的说法,HAProxy在13年间从未出现过一个会导致其崩溃的BUG,HAProxy一旦成功启动,除非操作系统或硬件故障,否则就不会崩溃。

  • 建议:
使用3.x内核的Linux操作系统运行HAProxy
运行HAProxy的主机上不要部署其他的应用,确保HAProxy独占资源,同时避免其他应用引发操作系统或主机的故障
至少为HAProxy配备一台备机,以应对主机硬件故障、断电等突发情况(搭建双活HAProxy的方法在后文中有描述)
sysctl的建议配置(并不是万用配置,仍然需要针对具体情况进行更精细的调整,但可以作为首次使用HAProxy的初始配置使用):
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 1024 65023
net.ipv4.tcp_max_syn_backlog = 10240
net.ipv4.tcp_max_tw_buckets = 400000
net.ipv4.tcp_max_orphans = 60000
net.ipv4.tcp_synack_retries = 3
net.core.somaxconn = 10000

3. 部署Haproxy

#下载二进制包解压
wget https://www.haproxy.org/download/2.0/src/haproxy-2.0.13.tar.gz
tar xf haproxy-2.0.13.tar.gz 
#进行编译
cd haproxy-2.0.13/
make PREFIX=/home/ha/haproxy TARGET=linux-glibc
make install PREFIX=/home/ha/haproxy
#编写配置文件
mkdir -p /home/ha/haproxy/conf
vim /home/ha/haproxy/conf/haproxy.cfg
global #全局属性
    daemon  #以daemon方式在后台运行
    maxconn 256  #最大同时256连接
    pidfile /home/ha/haproxy/conf/haproxy.pid  #指定保存HAProxy进程号的文件

defaults #默认参数
    mode http  #http模式
    timeout connect 5000ms  #连接server端超时5s
    timeout client 50000ms  #客户端响应超时50s
    timeout server 50000ms  #server端响应超时50s

frontend http-in #前端服务http-in
    bind *:8080  #监听8080端口
    default_backend servers  #请求转发至名为"servers"的后端服务

backend servers #后端服务servers
    server server1 127.0.0.1:8000 maxconn 32  #backend servers中只有一个后端服务,名字叫server1,起在本机的8000端口,HAProxy同时最多向这个服务发起32个连接

注意:HAProxy要求系统的ulimit -n参数大于[maxconn*2+18],在设置较大的maxconn时,注意检查并修改ulimit -n参数

#编写启动脚本
vim /etc/init.d/haproxy
#!/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/home/ha/haproxy/sbin
PROGDIR=/home/ha/haproxy
PROGNAME=haproxy
DAEMON=$PROGDIR/sbin/$PROGNAME
CONFIG=$PROGDIR/conf/$PROGNAME.cfg
PIDFILE=$PROGDIR/conf/$PROGNAME.pid
DESC="HAProxy daemon"
SCRIPTNAME=/etc/init.d/$PROGNAME
# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0

start()
{
       echo -e "Starting $DESC: $PROGNAME\n"
       $DAEMON -f $CONFIG
       echo "."
stop()
{
       echo -e "Stopping $DESC: $PROGNAME\n"
       haproxy_pid="$(cat $PIDFILE)"
       kill $haproxy_pid
       echo "."
}
restart()
{
       echo -e "Restarting $DESC: $PROGNAME\n"
       $DAEMON -f $CONFIG -p $PIDFILE -sf $(cat $PIDFILE)
       echo "."
}

case "$1" in
 start)
       start
       ;;
 stop)
       stop
       ;;
 restart)
       restart
       ;;
 *)
       echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2
       exit 1
       ;;
esac
exit 0
#system启动
vim /usr/lib/systemd/system/haproxy.service 
[Unit]
After=network.target

[Service]
Type=forking
ExecStart=/etc/init.d/haproxy start
ExecReload=/etc/init.d/haproxy restart
ExecStop=/etc/init.d/haproxy stop

[Install]
WantedBy=multi-user.target

添加日志

#修改haproxy配置文件
在global域和defaults域中添加:
global
    ...
    log 127.0.0.1 local0 info
    log 127.0.0.1 local1 warning
    ...
defaults
    ...
    log global
    ...
说明:info级(及以上)的日志推送到rsyslog的local0接口,将warn级(及以上)的日志推送到rsyslog的local1接口,并且所有frontend都默认使用global中的日志配置。

注:info级的日志会打印HAProxy处理的每一条请求,会占用很大的磁盘空间,在生产环境中,建议将日志级别调整为notice

#为rsyslog添加haproxy日志的配置
vi /etc/rsyslog.d/haproxy.conf
$ModLoad imudp
$UDPServerRun 514
$FileCreateMode 0644  #日志文件的权限
$FileOwner ha  #日志文件的owner
local0.*     /var/log/haproxy.log  #local0接口对应的日志输出文件
local1.*     /var/log/haproxy_warn.log  #local1接口对应的日志输出文件

#修改rsyslog的启动参数
vi /etc/sysconfig/rsyslog
# Options for rsyslogd
# Syslogd options are deprecated since rsyslog v3.
# If you want to use them, switch to compatibility mode 2 by "-c 2"
# See rsyslogd(8) for more details
SYSLOGD_OPTIONS="-c 2 -r -m 0"

#重启rsyslog和HAProxy

日志切分

#添加haproxy日志切割文件
vim /etc/rsyslog.d/haproxy.conf
/var/log/haproxy.log /var/log/haproxy_warn.log {  #切分的两个文件名
    daily        #按天切分
    rotate 7     #保留7份
    create 0644 ha ha  #创建新文件的权限、用户、用户组
    compress     #压缩旧日志
    delaycompress  #延迟一天压缩
    missingok    #忽略文件不存在的错误
    dateext      #旧日志加上日志后缀
    sharedscripts  #切分后的重启脚本只运行一次
    postrotate   #切分后运行脚本重载rsyslog,让rsyslog向新的日志文件中输出日志
      /bin/kill -HUP $(/bin/cat /var/run/syslogd.pid 2>/dev/null) &>/dev/null
    endscript
}
#设置定时任务
0 0 * * * /usr/sbin/logrotate /root/logrotate/haproxy

4. 搭建L7负载均衡器

10.0.0.7 8080  8081
10.0.0.8 8080  8081
10.0.0.9 8080  8081
部署6台后端web,每个端口可以访问到不同页面
在这6个Nginx服务分别部署健康检查页面healthCheck.html,页面内容任意

10.0.0.5 部署haproxy
HAProxy配置文件:
global
    daemon
    maxconn 30000   #ulimit -n至少为60018
    user ha
    pidfile /home/ha/haproxy/conf/haproxy.pid
    log 127.0.0.1 local0 info
    log 127.0.0.1 local1 warning

defaults
    mode http
    log global
    option http-keep-alive   #使用keepAlive连接
    option forwardfor        #记录客户端IP在X-Forwarded-For头域中
    option httplog           #开启httplog,HAProxy会记录更丰富的请求信息
    timeout connect 5000ms
    timeout client 10000ms
    timeout server 50000ms
    timeout http-request 20000ms    #从连接创建开始到从客户端读取完整HTTP请求的超时时间,用于避免类DoS攻击
    option httpchk GET /healthCheck.html    #定义默认的健康检查策略

frontend http-in
    bind *:9001
    maxconn 30000                    #定义此端口上的maxconn
    acl url_ms1 path_beg -i /ms1/    #定义ACL,当uri以/ms1/开头时,ACL[url_ms1]为true
    acl url_ms2 path_beg -i /ms2/    #同上,url_ms2
    use_backend ms1 if url_ms1       #当[url_ms1]为true时,定向到后端服务群ms1中
    use_backend ms2 if url_ms2       #当[url_ms2]为true时,定向到后端服务群ms2中
    default_backend default_servers  #其他情况时,定向到后端服务群default_servers中

backend ms1    #定义后端服务群ms1
    balance roundrobin    #使用RR负载均衡算法
    cookie HA_STICKY_ms1 insert indirect nocache    #会话保持策略,insert名为"HA_STICKY_ms1"的cookie
    #定义后端server[ms1.srv1],请求定向到该server时会在响应中写入cookie值[ms1.srv1]
    #针对此server的maxconn设置为300
    #应用默认健康检查策略,健康检查间隔和超时时间为2000ms,两次成功视为节点UP,三次失败视为节点DOWN
    server ms1.srv1 192.168.8.111:8080 cookie ms1.srv1 maxconn 300 check inter 2000ms rise 2 fall 3
    #同上,inter 2000ms rise 2 fall 3是默认值,可以省略
    server ms1.srv2 192.168.8.112:8080 cookie ms1.srv2 maxconn 300 check

backend ms2    #定义后端服务群ms2
    balance roundrobin
    cookie HA_STICKY_ms2 insert indirect nocache
    server ms2.srv1 192.168.8.111:8081 cookie ms2.srv1 maxconn 300 check
    server ms2.srv2 192.168.8.112:8081 cookie ms2.srv2 maxconn 300 check

backend default_servers    #定义后端服务群default_servers
    balance roundrobin
    cookie HA_STICKY_def insert indirect nocache
    server def.srv1 192.168.8.111:8082 cookie def.srv1 maxconn 300 check
    server def.srv2 192.168.8.112:8082 cookie def.srv2 maxconn 300 check

listen stats    #定义监控页面
    bind *:1080                   #绑定端口1080
    stats refresh 30s             #每30秒更新监控数据
    stats uri /stats              #访问监控页面的uri
    stats realm HAProxy\ Stats    #监控页面的认证提示
    stats auth admin:admin        #监控页面的用户名和密码

#重启haproxy
systemctl restart haproxy

#访问http://10.0.0.5:1080/stats
#验证账号密码

在这里插入图片描述
测试功能

  • 负载均衡及会话保持
    在这里插入图片描述
    清除cookie在次访问
    在这里插入图片描述
    不清除cookie则重复访问当前服务器
  • 健康检查
    将healthCheck.html 改名再次访问
    在这里插入图片描述
  • 通过URL前缀转发请求到后端
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

5. 搭建L4负载均衡器

Haproxy作为L4层负载均衡器只在传输层对数据包进行处理.
能够提供更高的性能,适合于基于套接字的服务(如数据库、消息队列、RPC、邮件服务、Redis等)
或不需要逻辑规则判断,并已实现了会话共享的HTTP服务.

#代理后端俩台web,不提供会话保持
global
    daemon
    maxconn 30000   #ulimit -n至少为60018
    user ha
    pidfile /home/ha/haproxy/conf/haproxy.pid
    log 127.0.0.1 local0 info
    log 127.0.0.1 local1 warning

defaults
    mode tcp
    log global
    option tcplog            #开启tcplog
    timeout connect 5000ms
    timeout client 10000ms
    timeout server 10000ms   #TCP模式下,应将timeout client和timeout server设置为一样的值,以防止出现问题
    option httpchk GET /healthCheck.html    #定义默认的健康检查策略

frontend http-in
    bind *:9002
    maxconn 30000                    #定义此端口上的maxconn
    default_backend default_servers  #请求定向至后端服务群default_servers

backend default_servers    #定义后端服务群default_servers
    balance roundrobin
    server def.srv1 10.0.0.7:8080 maxconn 300 check
    server def.srv2 10.0.0.8:8081 maxconn 300 check

#基于客户端IP会话保持
balance roundrobin   改为====>    balance source

6. 配置文件详解

  • HAProxy的配置文件共有5个域
global:用于配置全局参数
default:用于配置所有frontend和backend的默认属性
frontend:用于配置前端服务(即HAProxy自身提供的服务)实例
backend:用于配置后端服务(即HAProxy后面接的服务)实例组
listen:frontend+backend的组合配置,可以理解成更简洁的配置方法
  • global域的关键配置
daemon:指定HAProxy以后台模式运行,通常情况下都应该使用这一配置
user [username] :指定HAProxy进程所属的用户
group [groupname] :指定HAProxy进程所属的用户组
log [address] [device] [maxlevel] [minlevel]:日志输出配置,如log 127.0.0.1 local0 info warning,即向本机rsyslog或syslog的local0输出info到warning级别的日志。其中[minlevel]可以省略。HAProxy的日志共有8个级别,从高到低为emerg/alert/crit/err/warning/notice/info/debug
pidfile :指定记录HAProxy进程号的文件绝对路径。主要用于HAProxy进程的停止和重启动作。
maxconn :HAProxy进程同时处理的连接数,当连接数达到这一数值时,HAProxy将停止接收连接请求

frontend域的关键配置

acl [name] [criterion] [flags] [operator] [value]:定义一条ACL,ACL是根据数据包的指定属性以指定表达式计算出的true/false值。如"acl url_ms1 path_beg -i /ms1/"定义了名为url_ms1的ACL,该ACL在请求uri以/ms1/开头(忽略大小写)时为true
bind [ip]:[port]:frontend服务监听的端口
default_backend [name]:frontend对应的默认backend
disabled:禁用此frontend
http-request [operation] [condition]:对所有到达此frontend的HTTP请求应用的策略,例如可以拒绝、要求认证、添加header、替换header、定义ACL等等。
http-response [operation] [condition]:对所有从此frontend返回的HTTP响应应用的策略,大体同上
log:同global域的log配置,仅应用于此frontend。如果要沿用global域的log配置,则此处配置为log global
maxconn:同global域的maxconn,仅应用于此frontend
mode:此frontend的工作模式,主要有http和tcp两种,对应L7和L4两种负载均衡模式
option forwardfor:在请求中添加X-Forwarded-For Header,记录客户端ip
option http-keep-alive:以KeepAlive模式提供服务
option httpclose:与http-keep-alive对应,关闭KeepAlive模式,如果HAProxy主要提供的是接口类型的服务,可以考虑采用httpclose模式,以节省连接数资源。但如果这样做了,接口的调用端将不能使用HTTP连接池
option httplog:开启httplog,HAProxy将会以类似Apache HTTP或Nginx的格式来记录请求日志
option tcplog:开启tcplog,HAProxy将会在日志中记录数据包在传输层的更多属性
stats uri [uri]:在此frontend上开启监控页面,通过[uri]访问
stats refresh [time]:监控数据刷新周期
stats auth [user]:[password]:监控页面的认证用户名密码
timeout client [time]:指连接创建后,客户端持续不发送数据的超时时间
timeout http-request [time]:指连接创建后,客户端没能发送完整HTTP请求的超时时间,主要用于防止DoS类攻击,即创建连接后,以非常缓慢的速度发送请求包,导致HAProxy连接被长时间占用
use_backend [backend] if|unless [acl]:与ACL搭配使用,在满足/不满足ACL时转发至指定的backend
  • backend域的关键配置
acl:同frontend域
balance [algorithm]:在此backend下所有server间的负载均衡算法,常用的有roundrobin和source,完整的算法说明见官方文档configuration.html#4.2-balance
cookie:在backend server间启用基于cookie的会话保持策略,最常用的是insert方式,如cookie HA_STICKY_ms1 insert indirect nocache,指HAProxy将在响应中插入名为HA_STICKY_ms1的cookie,其值为对应的server定义中指定的值,并根据请求中此cookie的值决定转发至哪个server。indirect代表如果请求中已经带有合法的HA_STICK_ms1 cookie,则HAProxy不会在响应中再次插入此cookie,nocache则代表禁止链路上的所有网关和缓存服务器缓存带有Set-Cookie头的响应。
default-server:用于指定此backend下所有server的默认设置。具体见下面的server配置。
disabled:禁用此backend
http-request/http-response:同frontend域
log:同frontend域
mode:同frontend域
option forwardfor:同frontend域
option http-keep-alive:同frontend域
option httpclose:同frontend域
option httpchk [METHOD] [URL] [VERSION]:定义以http方式进行的健康检查策略。如option httpchk GET /healthCheck.html HTTP/1.1
option httplog:同frontend域
option tcplog:同frontend域
server [name] [ip]:[port] [params]:定义backend中的一个后端server,[params]用于指定这个server的参数,常用的包括有:
check:指定此参数时,HAProxy将会对此server执行健康检查,检查方法在option httpchk中配置。同时还可以在check后指定inter, rise, fall三个参数,分别代表健康检查的周期、连续几次成功认为server UP,连续几次失败认为server DOWN,默认值是inter 2000ms rise 2 fall 3
cookie [value]:用于配合基于cookie的会话保持,如cookie ms1.srv1代表交由此server处理的请求会在响应中写入值为ms1.srv1的cookie(具体的cookie名则在backend域中的cookie设置中指定)
maxconn:指HAProxy最多同时向此server发起的连接数,当连接数到达maxconn后,向此server发起的新连接会进入等待队列。默认为0,即无限
maxqueue:等待队列的长度,当队列已满后,后续请求将会发至此backend下的其他server,默认为0,即无限
weight:server的权重,0-256,权重越大,分给这个server的请求就越多。weight为0的server将不会被分配任何新的连接。所有server默认weight为1

timeout connect [time]:指HAProxy尝试与backend server创建连接的超时时间
timeout check [time]:默认情况下,健康检查的连接+响应超时时间为server命令中指定的inter值,如果配置了timeout check,HAProxy会以inter作为健康检查请求的连接超时时间,并以timeout check的值作为健康检查请求的响应超时时间
timeout server [time]:指backend server响应HAProxy请求的超时时间
  • default域
上文所属的frontend和backend域关键配置中,除acl、bind、http-request、http-response、use_backend外,其余的均可以配置在default域中。default域中配置了的项目,如果在frontend或backend域中没有配置,将会使用default域中的配置。
  • listen域
listen域是frontend域和backend域的组合,frontend域和backend域中所有的配置都可以配置在listen域下

7. 搭建HAProxy主备集群

10.0.0.5  keeplived+haproxy
10.0.0.6  keeplived+haproxy

#安装keeplived
yum install -y keepalived
global_defs {
    router_id LVS_DEVEL  #虚拟路由名称
}

#编辑配置文件
vim /etc/keepalived/keepalived.conf
##HAProxy健康检查配置
vrrp_script chk_haproxy {
    script "killall -0 haproxy"  #使用killall -0检查haproxy实例是否存在,性能高于ps命令
    interval 2                          #脚本运行周期
    weight 2                           #每次检查的加权权重值
}
##虚拟路由配置
vrrp_instance VI_1 {
    state MASTER          #设置一个主机为主服务器(MASTER BACKUP)
    interface eth0            #设置指定网卡生成VIP地址
    virtual_router_id 51   #主备一致,家族标识
    priority 101                #优先级越高,越有可能成为主
    advert_int 1               #组播包发送间隔
    virtual_ipaddress {
        10.0.0.3                 #设置VIP地址
    }
    track_script {
        chk_haproxy          #定期运行监控脚本
    }
}

#启动keeplived.先启动主
#停掉主,进行主备切换成功.
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一个典型的Haproxy_exporter的监控metric例子 包含指标 haproxy_backend_bytes_in_total haproxy_backend_bytes_out_total haproxy_backend_client_aborts_total haproxy_backend_compressor_bytes_bypassed_total haproxy_backend_compressor_bytes_in_total haproxy_backend_compressor_bytes_out_total haproxy_backend_connection_errors_total haproxy_backend_current_queue haproxy_backend_current_server haproxy_backend_current_session_rate haproxy_backend_current_sessions haproxy_backend_http_connect_time_average_seconds haproxy_backend_http_queue_time_average_seconds haproxy_backend_http_response_time_average_seconds haproxy_backend_http_responses_compressed_total haproxy_backend_http_responses_total haproxy_backend_http_total_time_average_seconds haproxy_backend_response_errors_total haproxy_backend_retry_warnings_total haproxy_backend_server_aborts_total haproxy_backend_server_selected_total haproxy_backend_sessions_total haproxy_backend_up haproxy_backend_weight haproxy_exporter_build_info haproxy_exporter_csv_parse_failures haproxy_exporter_total_scrapes haproxy_frontend_bytes_in_total haproxy_frontend_bytes_out_total haproxy_frontend_compressor_bytes_bypassed_total haproxy_frontend_compressor_bytes_in_total haproxy_frontend_compressor_bytes_out_total haproxy_frontend_connections_total haproxy_frontend_current_session_rate haproxy_frontend_current_sessions haproxy_frontend_http_requests_total haproxy_frontend_http_responses_compressed_total haproxy_frontend_http_responses_total haproxy_frontend_limit_session_rate haproxy_frontend_limit_sessions haproxy_frontend_max_session_rate haproxy_frontend_max_sessions haproxy_frontend_request_errors_total haproxy_frontend_requests_denied_total haproxy_frontend_sessions_total haproxy_server_bytes_in_total haproxy_server_bytes_out_total haproxy_server_check_duration_seconds haproxy_server_check_failures_total haproxy_server_client_aborts_total haproxy_server_connection_errors_total haproxy_server_current_queue haproxy_server_current_session_rate haproxy_server_current_sessions haproxy_server_downtime_seconds_total haproxy_server_http_responses_total haproxy_server_max_queue haproxy_server_max_session_rate haproxy_server_max_sessions haproxy_server_redispatch_warnings_total haproxy_server_response_errors_total haproxy_server_retry_warnings_total haproxy_server_server_aborts_total haproxy_server_server_selected_total haproxy_server_sessions_total haproxy_server_up haproxy_server_weight haproxy_up process_cpu_seconds_total process_max_fds process_open_fds process_resident_memory_bytes process_start_time_seconds process_virtual_memory_bytes promhttp_metric_handler_requests_in_flight promhttp_metric_handler_requests_total
Haproxy和Nginx是两个常用的开源软件,用于负载均衡和反向代理。下面是关于Haproxy和Nginx的一些信息和命令: Haproxy是一款高性能的负载均衡器,可以将流量分发到多个服务器上,以提高系统的可靠性和性能。要安装Haproxy,可以按照以下步骤操作: 1. 下载并解压Haproxy的源代码包。 2. 进入解压后的目录,执行命令:`./configure --prefix=/usr/local/haproxy`,这将配置Haproxy的安装路径为/usr/local/haproxy。 3. 接下来,执行命令:`make`,然后再执行命令:`make install`,这将编译和安装Haproxy。 4. 安装完成后,可以在/usr/local/haproxy目录下找到Haproxy的可执行文件。 Nginx是一款高性能的Web服务器和反向代理服务器,常用于静态资源的加速和负载均衡。要安装Nginx,可以按照以下步骤操作: 1. 下载并解压Nginx的源代码包。 2. 进入解压后的目录,执行命令:`./configure --prefix=/usr/local/nginx --user=nginx --group=nginx`,这将配置Nginx的安装路径为/usr/local/nginx,并指定Nginx运行的用户和用户组为nginx。 3. 接下来,执行命令:`make`,然后再执行命令:`make install`,这将编译和安装Nginx。 4. 安装完成后,可以在/usr/local/nginx目录下找到Nginx的配置文件和可执行文件。 在安装完Haproxy和Nginx后,还需要进行相应的配置才能使用它们。对于Haproxy,可以通过编辑配置文件/etc/haproxy/haproxy.cfg来配置代理规则和后端服务器。可以使用命令`cp /opt/haproxy-1.5.19/examples/haproxy.cfg /etc/haproxy`将示例配置文件复制到/etc/haproxy目录下。 对于Nginx,可以通过编辑配置文件/etc/nginx/nginx.conf来配置服务器和代理规则。可以使用命令`cp /opt/nginx-1.19.0/conf/nginx.conf /etc/nginx`将示例配置文件复制到/etc/nginx目录下。 需要注意的是,以上命令只是示例命令,实际使用时可能需要根据具体情况进行修改。另外,安装和配置Haproxy和Nginx需要一定的系统管理经验,建议在操作前先备份相关配置文件,并参考官方文档进行详细了解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值