LNMP+HAProxy+Keepalived负载均衡 - LNMP基础环境准备
环境版本说明:
服务器系统: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...
准备安装环境(两台服务器都需要执行):
```
# 关闭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
```安装lnmp:
```
cd /home/soft/lnmp1.5-full
./install.sh
```根据自己的需要选择MySQL、PHP等软件的版本,按提示操作,然后等待安装完成。我这里都选择最新版本。记好设置的相关密码,后面会用到。
其他命令集合(仅用参考,无需执行):
```
# 添加用户组和用户,并为其分配相关文件夹的最高权限:
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
```离线安装
如果要安装的服务器无法连接外网,安装就要麻烦很多,无法使用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 installmkdir /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的配置;
```
- 下载MySQL
来源:https://segmentfault.com/a/1190000017845210
LNMP+HAProxy+Keepalived负载均衡 - LNMP基础环境准备的更多相关文章
- LNMP+HAProxy+Keepalived负载均衡 - 基础服务准备
日志服务 修改日志服务配置并重启日志服务: ``` vim /etc/rsyslog.conf ``` 编辑系统日志配置,指定包含的配置文件路径和规则: ``` $IncludeConfig /etc ...
- 实现基于Haproxy+Keepalived负载均衡高可用架构
1.项目介绍: 上上期我们实现了keepalived主从高可用集群网站架构,随着公司业务的发展,公司负载均衡服务已经实现四层负载均衡,但业务的复杂程度提升,公司要求把mobile手机站点作为单独的服务 ...
- Haproxy+Keepalived负载均衡
Haproxy介绍 HAProxy是一个特别适用于高可用性环境的TCP/HTTP开源的反向代理和负载均衡软件.在7层负载均衡方面的功能很强大(支持cookie track, header rewrit ...
- Nginx+Keepalived负载均衡高可用
Nginx+Keepalived负载均衡高可用方案: Nginx 使用平台:unix.linux.windows. 功能: A.www web服务 http 80 b.负载均衡(方向代理proxy) ...
- Nginx,Haproxy/lvs负载均衡的优缺点分析
PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下. 一般对负载均衡的使用是随着网站规模的提升根据不 ...
- 基于 Haproxy 构建负载均衡集群
1.HAPROXY简介 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种负载均衡解决方案.HAProxy特别适用于那些负载特大的web ...
- Haproxy 构建负载均衡集群
1.HAPROXY简介 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种负载均衡解决方案.HAProxy特别适用于那些负载特大的web ...
- 23.Nginx+keepalived负载均衡高可用
Nginx+keepalived负载均衡高可用 结构图 环境: 主 服务器:192.168.239.10 备 服务器:192.168.239.20 Web 服务器1:192.168.239.40 We ...
- 搭建LVS+Keepalived负载均衡集群
这两天学习了LVS+Keepalived负载均衡的搭建.网上的教程非常多,可是动起手来遇到不少问题. 如今把自己的搭建过程以及遇到的一些问题给分享下. 硬件环境: Macbook 8G内存.250G ...
随机推荐
- JEECMS站群管理系统-- Jeecms安装过程
Jeecms是基于java技术研发的站群管理系统,稳定.安全.高效.跨平台.无限扩展是jeecms 的优点,系统支持mysql.oracle.sqlserver.db2等主流数据库. 轻松建设大规模网 ...
- Datastructure
时间复杂度的计算 计算最坏情况下执行语句的次数(含有n) 去掉常数项, 只保留最高项, 去掉系数 最后的结果一般是1, logn, n, nlogn, n^2, 2^n, n!, n^n 时间复杂度所 ...
- Java入门之IDE集成开发环境安装及配置
常用的开发工具 一.Eclipse Eclipse 是一个开放源代码的.基于 Java 的可扩展开发平台.就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境.幸运的是,Eclipse ...
- 刚刚写的一个lua下解释csv的工具。
csvtool = {} function csvtool:csv2table(filename) if type(filename) ~= "string" or filenam ...
- linux系统unzip文件报错的解决方案
data.zip文件有4G多,解压的时候出问题了. Archive: data.zip End-of-central-directorysignature not found. Either th ...
- 当你的域名是数字开头时如何命名java包路径
例如:域名是1001y.net 理想的包路径是net.1001y,但由于java命名规范的问题,首字母不能为数字,这时我们只有两种选择: 1,net.$1001y 使用$符号作为首字母. 2,net. ...
- 超好用的一个JQUERY分页器-jpaginate
jpaginate是一个自带滑动动画效果的jQuery分页插件,用户可以通过单击或只是悬停在箭头上的使页码滑动显示. 你可以用下面的方式调用插件: $(elementID).paginate() 您可 ...
- Linux下安装部署RabbitMQ
在写正文之前先啰嗦几句,RabbitMQ(消息队列)的安装让我费了半天劲啊!足足折腾了2天,最后写下这篇文章总结下,其实很简单,但是你找不到错在哪个环节就会费很多无用功,如果你也遇到了安装erl后 怎 ...
- 【转】C内存操作函数
一.malloc/calloc 名称: Malloc/calloc 功能: 动态内存分配函数 头文件: #include <stdlib.h> 函数原形: void *malloc(si ...
- [Pytorch] pytorch笔记 <二>
pytorch笔记2 用到的关于plt的总结 plt.scatter scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, ...