LNMP+HAProxy+Keepalived負載均衡 - LNMP基礎環境準備

  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的配置;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章