#!/bin/bash

 #需要lua-5.3..tar.gz、haproxy-2.0..tar.gz在家目录下
# 编译安装lua
#安装编译环境需要的包
yum -y install gcc openssl-devel pcre-devel systemd-devel readline-devel #下载lua包
#wget http://www.lua.org/ftp/lua-5.3.5.tar.gz # 解压到lua包到指定的文件夹 -C 指定文件夹 tar xvf lua-5.3..tar.gz -C /usr/local/src cd /usr/local/src/lua-5.3./ #编译安装lua
make linux test # 编译安装haproxy
cd tar xvf haproxy-2.0..tar.gz -C /usr/local/src/ cd /usr/local/src/haproxy-2.0./ #编译参数
make ARCH=x86_64 TARGET=linux-glibc USE_PCRE=1USE_OPENSSL= USE_ZLIB= USE_SYSTEMD= USE_LUA= LUA_INC=/usr/local/src/lua-5.3./src/ LUA_LIB=/usr/local/src/lua-5.3./src/ make install PREFIX=/apps/haproxy #软连接方式配置环境变量
ln -s /apps/haproxy/sbin/haproxy /usr/sbin/ #准备配置文件和socket目录
mkdir /var/lib/haproxy -p
mkdir /etc/haproxy -p #创建启动haproxy用的账户
useradd -r -s /sbin/nologin -d /var/lib/haproxy/ haproxy #导入cfg文件
cat > /etc/haproxy/haproxy.cfg <<EOF
global
maxconn
chroot /apps/haproxy
stats socket /var/lib/haproxy/haproxy.sock mode level admin
#uid
#gid
user haproxy
group haproxy
daemon
#nbproc
#cpu-map
#cpu-map
#cpu-map
#cpu-map
pidfile /var/lib/haproxy/haproxy.pid
log 127.0.0.1 local2 info defaults
option http-keep-alive
option forwardfor
maxconn
mode http
timeout connect 300000ms
timeout client 300000ms
timeout server 300000ms listen stats
mode http
bind 0.0.0.0:
stats enable
log global
stats uri /haproxy-status
stats auth haadmin: #listen web_port
# bind 10.0.0.7:
# mode http
# log global
# server web1 127.0.0.1: check inter fall rise EOF #开机启动service文件 cat > /usr/lib/systemd/system/haproxy.service <<EOF
[Unit]
Description=HAProxy Load Balancer
After=syslog.target network.target
[Service]
ExecStartPre=/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -c -q
ExecStart=/usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p \
/var/lib/haproxy/haproxy.pid
ExecReload=/bin/kill -USR2 \$MAINPID
[Install]
WantedBy=multi-user.target
EOF # 文件生效
systemctl daemon-reload systemctl enable --now haproxy.service
[root@rs2 ~]#vim haproxy.sh #!/bin/bash #需要lua-5.3..tar.gz、haproxy-2.0..tar.gz在家目录下
# 编译安装lua
#安装编译环境需要的包
yum -y install gcc openssl-devel pcre-devel systemd-devel readline-devel #下载lua包
#wget http://www.lua.org/ftp/lua-5.3.5.tar.gz # 解压到lua包到指定的文件夹 -C 指定文件夹 tar xvf lua-5.3..tar.gz -C /usr/local/src cd /usr/local/src/lua-5.3./ #编译安装lua
make linux test # 编译安装haproxy
cd tar xvf haproxy-2.0..tar.gz -C /usr/local/src/ cd /usr/local/src/haproxy-2.0./ #编译参数
make ARCH=x86_64 TARGET=linux-glibc USE_PCRE=1USE_OPENSSL= USE_ZLIB= USE_SYSTEMD= USE_LUA= LUA_INC=/usr/local/src/lua-5.3./src/ LUA_LIB=/usr/local/src/lua-5.3./src/ make install PREFIX=/apps/haproxy #软连接方式配置环境变量
ln -s /apps/haproxy/sbin/haproxy /usr/sbin/ #准备配置文件和socket目录
mkdir /var/lib/haproxy -p
mkdir /etc/haproxy -p #创建启动haproxy用的账户
useradd -r -s /sbin/nologin -d /var/lib/haproxy/ haproxy #导入cfg文件
cat > /etc/haproxy/haproxy.cfg <<EOF
global
maxconn
chroot /apps/haproxy
stats socket /var/lib/haproxy/haproxy.sock mode level admin
#uid
#gid
user haproxy
group haproxy
daemon
#nbproc
#cpu-map
#cpu-map
#cpu-map
#cpu-map
pidfile /var/lib/haproxy/haproxy.pid
log 127.0.0.1 local2 info defaults
option http-keep-alive
option forwardfor
maxconn
mode http
timeout connect 300000ms
timeout client 300000ms
timeout server 300000ms listen stats
mode http
bind 0.0.0.0:
stats enable
log global
stats uri /haproxy-status
stats auth haadmin: #listen web_port
# bind 10.0.0.7:
# mode http
# log global
# server web1 127.0.0.1: check inter fall rise EOF #开机启动service文件 cat > /usr/lib/systemd/system/haproxy.service <<EOF
[Unit]
Description=HAProxy Load Balancer
After=syslog.target network.target
[Service]
ExecStartPre=/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -c -q
ExecStart=/usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p \
/var/lib/haproxy/haproxy.pid
ExecReload=/bin/kill -USR2 \$MAINPID
[Install]
WantedBy=multi-user.target
EOF # 文件生效
systemctl daemon-reload systemctl enable --now haproxy.service

HAproxy shell脚本安装的更多相关文章

  1. shell脚本安装python、pip--这种写法是错误的---每一个命令执行完都要判断是否执行成功,否则无法进行下一步

    shell脚本安装python.pip--不需要选择安装项目--不管用总报错,必须带上判断符号,while没有这种用法,写在这里为了以后少走弯路,所以不要用下面的执行了 首先把pip-.tgz 安装包 ...

  2. Linuxqq shell脚本安装后的卸载

    官方下载和帮助页面: 传送门 linuxqq_2.0.0-b1 的时候,并没有发布 MIPS64 的 DEB 包,只能用 .sh 安装,需要手动删除卸载.愚人节发布的 beta2 新增了 MIPS64 ...

  3. zabbix通过shell脚本安装异常问题定位

    htxk-106主机信息现象如下: 通过zabbix_get命令 zabbix_get [7189]: Check access restrictions in Zabbix agent config ...

  4. Docker学习3-简单shell脚本安装mysql5.7与docker小技巧

    前言 玩过Windows中的 .bat 的小伙伴是不是觉得很有意思呢,github中一键推送.同步拉取等等操作,哈哈,当然shell脚本也是很类似,可以运行一个脚本就可以自动给我们部署好环境啦!但是这 ...

  5. shell 脚本安装Tomcat和java

    脚本安装Tomcat和java#!/bin/bash##SCRIPT:install_jdk-8u181-linux-x64_apache-tomcat-8.0.53#AUTHOR:Shinyinfo ...

  6. shell脚本安装部署反向代理 监控进程 计划任务

    1.编写脚本自动部署反向代理.web.nfs: 要求: I.部署nginx反向代理三个web服务,调度算法使用加权轮询: 反向代理服务器脚本配置脚本 #!/bin/bash #安装eple和nginx ...

  7. shell脚本安装python、pip--交互式的

    首先把pip-.tgz 安装包放在 /usr/local 下面,按照顺序先安装pip,再安装python.不要先安装或只安装python,否则很容易出错, [root@bogon ~]# cat pi ...

  8. 用shell脚本安装apache

    我们首先创建一个文件为test.sh,执行此文件的方法有以下四种方式: 1../test.sh(必须chmod赋予执行权限) 2.. test.sh 3.sourse test.sh 4.[shell ...

  9. shell脚本安装jdk

    #!/bin/bash BASE_SERVER=192.168.1.11 yum install -y wget wget $BASE_SERVER/soft-all/jdk-7u45-linux-x ...

随机推荐

  1. c# 导出excel的两种常见方法

    1,不是用第三方插件(html直接输出) StringBuilder ssb = new StringBuilder(); StringBuilder sb = new StringBuilder() ...

  2. Angular入门之环境搭建(VS code)(转载)

    安装Visual Studio Code VS code和我们常用的VS压根不是一回事,它只是一个开源的轻量级编辑器,而不是IDE,因为支持typescript语法,且插件功能丰富,所以选择 官网下载 ...

  3. C# 获取系统所有字体

    获取已安装的所有字体列表 System.Drawing.FontFamily StringBuilder str = ); InstalledFontCollection fonts = new In ...

  4. Python下载各种功能包出问题

    问题详情 点击之后出现 AttributeError: module 'importlib._bootstrap' has no attribute 'SourceFileLoader' 解决方法 c ...

  5. ASP.NET MVC5实现芒果分销后台管理系统(二):Code First快速集成EntityFramework

    在上一篇文章中,我们已经搭建了整个芒果后台管理系统整个工程架构,并集成了AutoMapper,日志组件等,接下来我们将使用Entity Framework完善系统的持久化存储部分.这篇EF的构造,我将 ...

  6. 网络安全从入门到精通 (第二章-1) Web安全前端基础

    本文内容: 前端是什么? 前端代码 HTML CSS JS !!!醋成酒的小墨,促成就的小墨,小墨促成就,!!! 1,前端是什么? 网站一般用两部分组成,前端负责展示,后端负责处理请求. 2,前端代码 ...

  7. rabbitmq系列(四)死信队列

    一.什么是死信队列 当消息在一个队列中变成一个死信之后,它将被重新publish到另一个交换机上,这个交换机我们就叫做死信交换机,私信交换机将死信投递到一个队列上就是死信队列.具体原理如下图: 消息变 ...

  8. Journal of Proteome Research | Quantifying Protein-Specific N-Glycome Profiles by Focused Protein and Immunoprecipitation Glycomics (分享人:潘火珍)

    文献名:Quantifying Protein-Specific N-Glycome Profiles by Focused Protein and Immunoprecipitation Glyco ...

  9. CTF_WriteUp_HTTP基本认证(Basic access authentication)

    HTTP基本认证 在HTTP中,基本认证(英语:Basic access authentication)是允许http用户代理(如:网页浏览器)在请求时,提供用户名和密码 的一种方式.HTTP基本认证 ...

  10. doc-指令-查看端口是否被占用及占用程序

    来源:http://www.blogjava.net/huozhicheng/archive/2011/09/27/359620.html 1.首先进入命令行 查看端口是否被占用 使用命令: nets ...