循序渐进linux(二)
500~599 服务器错误
501 内部服务器错误
502 坏的网关,后端服务器不可用或没有完成响应网关服务器
503 服务当前不可用
504 网关超时
网站的并发:
51cto 数十台:10000
你如何理解网站的并发?
单位时间内能够处理的最大连接数
公式的访问量是多少?怎么计算?
如果有几万的PV同时描述数十台的集群架构就尴尬了
php提供解析的方式,在配置apache解析动态程序用的是mod_php5.so
配置Nginx解析动态程序常用FastCGI守护进程提供服务
Nginx安装pcre库
pcre库是为了使用Nginx支持具备URI重写功能的rewrite模块
安装MariaDB
yum install mariadb-server mariadb
rpm -q mariadb mariadb-server
mysql -uroot -p
创建一个数据库
create database cmsdb;
创建一个新用户ixdba,设置密码,并将该数据库的权限赋予此用户
grant all on cmsdb.* to 'ixdba' identified by 'ixdbapassword';
更新权限
flush privilege;
quit;
高性能解决方案:如何实现数据共享或数据同步 第二个如何处理故障转移
数据同步通过rsync软件或DRBD来实现
故障转移:主备切换
解决方法:
1.主从复制
简单说:从服务器到主服务器拉取二进制日志文件,然后再将日志文件解析成相应的SQL在从
服务器上重新执行一遍主服务器的操作,从而保证数据的一致性
keepalived+mysql 95%SLA
一主一从
一主多从
主主互备
双主多从
2.MMM高可用
master-master Replication Manager 主主复制管理器,双主多从架构
两个服务器互为主从,当可写的主节点故障,MMM套件可以立刻监控到,然后将服务自动切换到另一个主节点
继续提供服务 99%SLA
3.Heartbeat/SAN高可用解决方法
成本高,存在脑裂可能 99.990%SLA
4。heartbeat/DRBD高可用解决方案
DRBD distributed replicated block device 用软件实现的,无共享的、服务器之间镜像块设备内容的分布式存储复制解决方案
实现稍微复,存在脑裂可能 990900%SLA
5.Mysql Cluster高可用解决方案
实现繁琐,配置复杂,实际应用企业并不多 99.999%SLA
手动同步数据库
如果DB1上有mysql数据,执行主主互备之前,先要进行数据同步
flush tables with read lock;
开启另一个终端
cd /var/lib/
tar -zxvf mysql.tar.gz mysql
scp mysql.tar.gz DB2:/var/lib
创建复制用户并授权
需要关注的重点:
slave_IO_Running
slave_SQL_Running
这两个就是在从服务器节点上运行的主从复制线程,两个值都是yes
MMM套件安装
安装一个和操作系统版本对应的yum源
monitor节点 yum -y install mysql-mmm*
每个db节点 yum -y install msyql-mmm-agent
通过内置的安全脚本实现对数据库安全保护
mysql_secure_installation
php-mysqlnd是php源码提供的Mysql驱动连接库
php-pdo是提供php应用程序层的API接口
安装教新版本的php
安装一个epel源
wget http://mirrors.neusoft.edu.cn/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
rpm -ivh epel-release-7-11.noarch.rpm
REMI源,提供了最新的PHP版本的下载和安装
rpm --import https://rpms.remirepo.net/RPM-GPG-KEY-remi
wget https://rpms.remirepo.net/enterprise/remi-release-7.rpm
rpm -ivh remi-release-7.rpm
检查REMI是否成功安装
yum repolist disabled | grep remi
搜索REMI仓库是否有可用的包
yum --enablerepo=remi list php
yum --enablerepo=remi-php56 install php
测试php环境的正确性
<?php phpinfo(); ?>
DNS服务器搭建
DNS服务是通过bind软件实现的
rpm -qa | grep bind
yum install -y bind bind-utils bind-libs
配置文件/etc/named.conf
0.0.0.0/0 监听所有IP
nslookup命令对DNS解析情况进行测试
Samba是一个能让linux系统应用Microsoft网络通信协议的软件
SMB是Server Message Block 服务消息块
samba最大的功能就是可以用于linux和windows系统直接的文件共享和打印文件
安装samba yum -y samba samba-client samba-common
配置文件 /etc/samba/smb.conf
samba由两个服务组成SMB和NMB
SMB服务启动才能实现文件共享
NMB服务是负责解析的,NMB可以把linux系统共享的工作组名称与IP对应起来
linux安全
yum update 实现操作系统的自动升级
设定tcp_wrappers防火墙
配置文件 /etc/hosts.allow /etc/hosts.deny
DMZ,可以理解为一个不同于外网或内网的特殊网络区域,重点在保护服务器本身
DMZ区域将互联网与局域网隔离开来,放置不含机密信息的服务器 web、数据库、ftp等服务器
访问者通过liinux防火墙访问DMZ中的服务
DMZ区域的服务器直接连接到外网区域的交换机上,然后通过linux防火墙与互联网进行交互
安装rsync
groupadd -g 1020 linuxfans 新建用户组
more /etc/group | grep linuxfans
newgrp一个用户在多个用户组之间进行切换
groupadd group1
groupadd group2
useradd -g group1 -G group2 user1
newgroup group1
newgroup group2
安装NFS
yum install nfs-utils rpcind -y
建立组用户指定GID 888
groupadd zuma -g 888
建立组用户指定UID并加入组
useradd zuma -u 888 -g zuma
LVS等负载均衡是转发用户请求的数据包,而nginx反向代理是接受用户的请求重新发起请求到后面的节点