1. 环境版本说明:

    • 服务器系统:CentOS 7.5:

      ```

      cat /etc/redhat-release
      CentOS Linux release 7.5.1804 (Core) # 输出结果
      ```

    • 服务器IP地址:
      服务器A:192.168.6.100
      服务器B:192.168.6.200
    • LNMP版本:
      lnmp1.5
      下载地址:http://soft.vpser.net/lnmp/ln...
  2. 准备安装环境(两台服务器都需要执行):

    ```

    # 关闭selinux(如果是centos系统,默认会开启selinux,会引发很多权限问题)
    vim /etc/selinux/config
    # 把SELINUX=enforcing改为
    SELINUX=disabled
    # 保存退出,并执行下面的命令使配置立即生效:
    setenforce 0

    # 升级所有包,改变软件设置和系统设置,系统版本内核都升级
    # yum -y update
    # 升级所有包,不改变软件设置和系统设置,系统版本升级,内核不改变
    yum -y upgrade
    # 安装后面用到的软件
    yum -y install haproxy keepalived vim crontabs mlocate && updatedb
    # 创建文件夹,并将lnmp安装包下载到当前新创建的文件夹
    mkdir -p /home/soft && cd /home/soft && wget http://soft.vpser.net/lnmp/lnmp1.5-full.tar.gz
    # 解压安装包
    tar -xvf lnmp1.5-full.tar.gz
    ```

  3. 安装lnmp:

    ```

    cd /home/soft/lnmp1.5-full
    ./install.sh
    ```

    根据自己的需要选择MySQL、PHP等软件的版本,按提示操作,然后等待安装完成。我这里都选择最新版本。记好设置的相关密码,后面会用到。

  4. 其他命令集合(仅用参考,无需执行):

    ```

    # 添加用户组和用户,并为其分配相关文件夹的最高权限:
    groupadd -r GroupName
    useradd -g UserName -M -s /sbin/nologin GroupName
    chown -R GroupName:UserName /usr/local/haproxy

    # 工具版本查看
    mysql -uroot -pPwdStr # 登录后就可以看到mysql的版本
    nginx -v # nginx version
    haproxy -v # HA-Proxy version
    keepalived -v # keepalived 版本

    # 编辑配置文件集合:
    vim /etc/keepalived/keepalived.conf
    vim /etc/rsyslog.conf # 编辑系统日志配置
    vim /etc/rsyslog.d/haproxy.conf # HAProxy的日志
    vim /etc/sysconfig/rsyslog # rsyslog的主配置
    vim /usr/local/nginx/conf/nginx.conf # Nginx的配置
    vim /etc/haproxy/haproxy.cfg # HAProxy的配置
    vim /etc/my.cnf # MySQL的配置

    # 将相关服务设置为开机启动:
    chkconfig nginx on # Web服务
    chkconfig mysql on # 数据库服务
    chkconfig haproxy on # 反向代理服务
    chkconfig keepalived on # 服务状态监测
    chkconfig crond on # 计划任务服务
    chkconfig rsyslog on # 日志服务

    # 重启各服务集合:
    service haproxy restart & service haproxy status
    service rsyslog restart & service rsyslog status
    service nginx restart & service nginx status
    service mysql restart & service mysql status
    service keepalived restart & service keepalived status
    service crond restart & service crond status
    lnmp restart
    ```

  5. 离线安装
    如果要安装的服务器无法连接外网,安装就要麻烦很多,无法使用lnmp的一键安装包了。只能通过PC下载,然后远程上传到服务器,然后再编译安装。这里就不列举所有软件的安装。

    • 下载MySQL
      点击官方下载 mysql-8.0.13-1.el7.x86_64.rpm-bundle.tar;
    • 安装MySQL

      ```

      # 卸载系统自带数据库:
      rpm -qa | grep MySQL-
      rpm -ev xxx
      rpm -e --nodeps mysql
      yum -y remove mari*

      # 将下载的文件通过Xftp上传到服务器
      # 解压文件到当前目录:
      tar -xvf mysql-8.0.13-1.el7.x86_64.rpm-bundle.tar
      # 安装 MySQL:
      rpm -ivh MySQL_*

      # 创建用户组和用户:
      groupadd -r mysql
      useradd -g mysql mysql
      # 为MySQL的数据库文件夹授权:
      chown -R mysql:mysql /home/lnmp/mysql/data/
      # 相应的依赖
      # 1. libaio
      # 2. net-tools
      # 3. perl
      # 安装perl
      ./Configure -des -Dprefix=/usr/bin/perl
      make && make test
      make install
      perl -v
      # 只需要安装一下四个组件就可以了:
      # 因为具有依赖关系,所以需要按顺序执行:
      rpm -ivh mysql-community-common-*.rpm
      rpm -ivh mysql-community-libs-*.rpm
      rpm -ivh mysql-community-client-*.rpm
      rpm -ivh mysql-community-server-*.rpm
      # 查看mysql是否启动
      service mysqld status
      # 启动mysql
      service mysqld start
      # 停止mysql
      service mysqld stop
      # 重启mysql
      service mysqld restart
      ```

    • 配置MySQL

      ```

      # 安装完成后,打印出的安装日志里面有一些有用的提示信息,如:
      # 查看临时密码:
      cat /root/.mysql_secret
      # /usr/bin/mysql_secure_installation
      # New default config file was created as /usr/my.cnf and
      # will be used by default by the server when you start it.
      # WARNING: Default config file /etc/my.cnf exists on the system
      # This file will be read by default by the MySQL server
      # If you do not want to use this, either remove it, or use the
      # --defaults-file argument to mysqld_safe when starting the server

      # 登录后修改密码:
      mysql> SET PASSWORD = PASSWORD('DBPwdStr');
      # 为数据库创建访问账户,修改账户的限制IP,查询用户表:
      mysql> GRANT ALL ON *.* TO 'username'@'%' IDENTIFIED BY 'DBPwdStr' WITH GRANT OPTION;
      mysql> update mysql.user set host='%' where host='::1';
      mysql> delete from mysql.user where host<>'%';
      mysql> select * from mysql.user \G;

      # 编辑MySQL的配置文件:
      vim /etc/my.cnf

      # 启动MySQL服务:
      service mysql restart && service mysql status

      # 启动错误
      # The server quit without updating PID file (/home/lnmp/mysql/data/localhost.localdomain.pid).
      # 1.可能是/usr/local/mysql/data/rekfan.pid文件没有写的权限
      # 解决方法 :给予权限,执行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data” 然后重新启动mysqld!
      # 2.可能进程里已经存在mysql进程
      # 解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9 进程号”杀死,然后重新启动mysqld!
      # 3.可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。
      # 解决方法:去mysql的数据目录/data看看,如果存在mysql-bin.index,将它删除。
      # 4.mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,查看该文件的[mysqld]下有没有指定的数据目录(datadir)。
      # 解决方法:请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data
      ```

    • 安装计划任务管理工具 - crontabs
      点击链接下载 crontabs-1.11-6.20121102git.el7.noarch.rpm,如需下载其他版本,请访问官网
      安装:rpm -ivh crontabs-1.11-6.20121102git.el7.noarch.rpm
      添加自动备份任务,具体操作请参考MySQL的自动备份。
    • 下载(需要连接VPN)并安装HAProxy
      点击链接下载 haproxy-1.5.19.tar.gz,如需下载其他版本请访问官网
      安装HAProxy:

      ```

      # 添加用户组和用户:
      groupadd -r haproxy
      useradd -g haproxy -M -s /sbin/nologin haproxy
      # 为安装文件夹授权:
      chown -R haproxy:haproxy /usr/local/haproxy
      # 查看内核:
      uname -r
      # 解压安装包
      tar -xvf haproxy-1.5.19.tar.gz
      cd haproxy-1.5.19

      # 根据内核版本进行编译(这里的版本对应的目标是linux310):
      make TARGET=linux310 ARCH=x86_64 PREFIX=/usr/local/haproxy
      make install PREFIX=/usr/local/
      # 将可执行文件拷贝到全局目录下:
      cp /usr/local/haproxy/sbin/haproxy /usr/sbin/haproxy
      ```

    • 配置HAProxy

      ```

      # 配置HAProxy;
      cat /etc/haproxy/haproxy.cfg
      vim /etc/haproxy/haproxy.cfg
      # 编辑配置文件内容,请参考HAProxy的负载均衡
      # 重启HAProxy服务;
      haproxy -f /etc/haproxy/haproxy.cfg
      # 测试HAProxy;
      ps -ef | grep haproxy
      # 访问HAProxy代理的地址和端口,分别停掉备服务器的Nginx服务后,继续访问正常则说明基本配置没问题;
      ```

    • 下载并安装Keepalived
      点击链接下载Keepalived 1.4.5,下载其他版本请访问官网;
      安装Keeplived;

      ```

      tar -xvf keepalived-1.4.5.tar.gz
      cd keepalived-1.4.5
      ./configure --prefix=/usr/local/keepalived
      make && make install

      mkdir /etc/keepalived
      cp /usr/local/keepalived/sbin/keepalived /usr/bin/keepalived
      cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
      cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/keepalived
      # 设置开机启动
      chkconfig keepalived on
      # 服务操作命令
      service keepalived start
      service keepalived stop
      service keepalived restart
      service keepalived status
      service keepalived restart & service keepalived status
      ```

    • 配置Keepalived;

      ```

      # 编辑配置文件:
      vim /etc/keepalived/keepalived.conf
      # 主从服务器的配置略有差别,具体配置请参照Keepalived的配置;
      ```

来源:https://segmentfault.com/a/1190000017845210

LNMP+HAProxy+Keepalived负载均衡 - LNMP基础环境准备的更多相关文章

  1. LNMP+HAProxy+Keepalived负载均衡 - 基础服务准备

    日志服务 修改日志服务配置并重启日志服务: ``` vim /etc/rsyslog.conf ``` 编辑系统日志配置,指定包含的配置文件路径和规则: ``` $IncludeConfig /etc ...

  2. 实现基于Haproxy+Keepalived负载均衡高可用架构

    1.项目介绍: 上上期我们实现了keepalived主从高可用集群网站架构,随着公司业务的发展,公司负载均衡服务已经实现四层负载均衡,但业务的复杂程度提升,公司要求把mobile手机站点作为单独的服务 ...

  3. Haproxy+Keepalived负载均衡

    Haproxy介绍 HAProxy是一个特别适用于高可用性环境的TCP/HTTP开源的反向代理和负载均衡软件.在7层负载均衡方面的功能很强大(支持cookie track, header rewrit ...

  4. Nginx+Keepalived负载均衡高可用

    Nginx+Keepalived负载均衡高可用方案: Nginx 使用平台:unix.linux.windows. 功能: A.www web服务  http 80 b.负载均衡(方向代理proxy) ...

  5. Nginx,Haproxy/lvs负载均衡的优缺点分析

    PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下. 一般对负载均衡的使用是随着网站规模的提升根据不 ...

  6. 基于 Haproxy 构建负载均衡集群

    1.HAPROXY简介 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种负载均衡解决方案.HAProxy特别适用于那些负载特大的web ...

  7. Haproxy 构建负载均衡集群

    1.HAPROXY简介 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种负载均衡解决方案.HAProxy特别适用于那些负载特大的web ...

  8. 23.Nginx+keepalived负载均衡高可用

    Nginx+keepalived负载均衡高可用 结构图 环境: 主 服务器:192.168.239.10 备 服务器:192.168.239.20 Web 服务器1:192.168.239.40 We ...

  9. 搭建LVS+Keepalived负载均衡集群

    这两天学习了LVS+Keepalived负载均衡的搭建.网上的教程非常多,可是动起手来遇到不少问题. 如今把自己的搭建过程以及遇到的一些问题给分享下. 硬件环境: Macbook 8G内存.250G ...

随机推荐

  1. http method and status code

    http method HEAD: 只返回相应的header POST: 一般用于提交表单 PUT: 向Web服务器上传文件 GET: 查 DELET: 删除 status code 1xx与2xx: ...

  2. Emacs学习笔记2

    emacs的启动初始化 需要有一个~/.emacs文件, 这个和vim一样 emacs中的查找与替换 递增查找 C-s, 在minibuffer中输入即可, 在一次C-s会跳转到下一个 两次C-g取消 ...

  3. MyEclipse 比较常用的快捷键

    Ctrl+D: 删除当前行 Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了) Alt+↑ 当前行和上面一行交互位置(同上) Alt+← 前一个编辑的页面 Alt+→ 下一个编 ...

  4. HashMap源码详解与对比

    前几天工作忙得焦头烂额时,同事问了一下关于Map的特性,刹那间懵了一下,紧接着就想起来了一些关于Map的一些知识,因为只要涉及到Collection集合类时,就会谈及Map类,因此理解好Map相关的知 ...

  5. Spring课程 Spring入门篇 3-5 Spring bean装配(上)之Resource

    课程链接: 1 resource简析 2 resource代码演练 1 resource简析 urlsource:url对应的资源 classpath:获取类路径下的资源文件 filesystemre ...

  6. XHTML教会我的一些东西-1

    第一次写博客,虽然以前写作文是我的强项,我也很能说,但是似乎现在这种能力正在退化.不知为什么,到了大学之后我就变得跟以前不一样,似乎是回到了小学时的我.我在大学开始变得内向.沉默.不去主动和别人交谈. ...

  7. ansible的安装及命令相关模块

    ansible 第一步:下载epel源 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos- ...

  8. Android Studio快捷键【Android学习入门】

    Studio快捷键[Android学习入门]" title="Android Studio快捷键[Android学习入门]"> 提示 Ctrl+P方法参数提示 Ct ...

  9. 时域反射计(TDR)原理与应用

    [施工编辑中...] 1. 什么是TDR? TDR = Time Domain Reflectometry 时域反射计TDR用来测量信号在通过某类传输环境传导时引起的反射,如电路板轨迹.电缆.连接器等 ...

  10. MySQL入门很简单: 2 MySQL数据类型

    2. MySQL数据类型 2.1 整数类型 后面的是默认显示宽度: tinyint(4) smallint(6) mediumint(9) int(11) bigint(20) 2.2 浮点型和定点数 ...