LNMP集群架构篇
一.LNMP介绍
1.使前端web服务和后端存储服务进行串联
2.主要实现处理php动态请求
工作原理:
L:linux N:nginx M:mysql P:php
二、lnmp部署
我的环境:centos6.9+nginx+mysql5.6+php5 文件存储系统NFS
1.部署安装linux系统(这里不介绍了)
基础优化操作要完成(防火墙关闭,关闭selinuxn 将/tmp目录权限设为1777)
2.部署nginx服务
这里暂时忽略...................
3.安装部署mysql
三种安装方式:yum部署,源码编译安装,二进制包安装
本次介绍下二进制安装方法:
第一个里程:下载并解压mysql安装包
mysql官方下载链接地址:ftp://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.6/
上传mysql软件程序,进行利用xftp软件进行上传
tar xf mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.34-linux-glibc2.5-x86_64 /application/mysql-5.6.34 (我的安装目录为/application/mysql 你随意)
第二里程: 创建程序软链接
ln -sf /application/mysql-5.6.34/ /application/mysql
第三里程:创建数据库管理用户,并授权给数据目录
useradd -s mysql /sbin/nologin -M
chown -R mysql.mysql /application/mysql/data/
第四个里程:对数据库服务进行初始化
/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data/ --user=mysql
第五个里程:启动mysql服务
cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld sed -ri 's#/usr/local#/application#g' /etc/init.d/mysqld /application/mysql/bin/mysqld_safe (将默认的路径改成你自己安装目录) cp /application/mysql/support-files/my-default.cnf /etc/my.cnf /etc/init.d/mysqld start
第六个里程:设置数据库root用户登录密码
/application/mysql/bin/mysqladmin -uroot password "密码=="
/application/mysql/bin/mysql -uroot -poldboy123 (嫌难敲自己设置软链接)
4. 安装部署PHP
第一里程:解决PHP软件的依赖关系
yum install -y zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel libiconv软件安装---字符集转换库(默认可以不进行安装了) cd /server/tools #wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz tar zxf libiconv-1.14.tar.gz cd libiconv-1.14 ./configure --prefix=/usr/local/libiconv make && make install 如果用yum安装的话,注意更新下yum源 #wget -O /etc/yum.repos.d/epel.repo
http://mirrors.aliyun.com/repo/epel-6.repo yum -y install libmcrypt-devel mhash mcrypt rpm -qa libmcrypt-devel mhash mcrypt
第二个里程:下载解压PHP软件
php官方网站下载:php.net cd /server/tools/ tar xf php-5.5.32.tar.gz cd php-5.5.32 ./configure \
--prefix=/application/php-5.5.32 \
--with-mysql=/application/mysql-5.6.34 \
--with-pdo-mysql=mysqlnd \
--with-iconv-dir=/usr/local/libiconv \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-fpm \
--enable-mbstring \
--with-mcrypt \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--enable-short-tags \
--enable-static \
--with-xsl \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-ftp \
--enable-opcache=no ##为了防错(配置下以下信息) ln -s /application/mysql/lib/libmysqlclient.so.18 /usr/lib64/ touch ext/phar/phar.phar #编译安装 make && make install ln -s /application/php-5.5.32/ /application/php
第三个里程:设置PHP程序配置文件
php.ini php-fpm.ini
cp php.ini-production /application/php-5.5.32/lib/
cd /application/php/etc/
cp php-fpm.conf.default php-fpm.con
第四个里程:启动php程序服务
/application/php/sbin/php-fpm
netstat -lntup|grep php
5.php与mysql和nginx进行软件结合
5.1、与mysql进行结合
编写.php文件
<?php
//$link_id=mysql_connect('主机名','用户','密码');
//mysql -u用户 -p密码 -h 主机
$link_id=mysql_connect('localhost','root','oldboy123') or mysql_error();
if($link_id){
echo "mysql successful by oldboy !\n";
}else{
echo mysql_error();
}
?>
5.2、php与nginx结合
编写nginx配置文件 nginx.conf
nginx与php结合:编写nginx配置文件的location
location ~* .*\.(php|php5)?$ {
fastcgi_pass 127.0.0.1:9000; #php服务默认9000端口
fastcgi_index index.php;
include fastcgi.conf;
}
6、部署一个网站
第一个里程:下载与上传网站代码
第二个里程:解压程序代码,将程序代码保存到nginx站点目录并进行授权
例如:
tar xf wordpress-4.7.3-zh_CN.tar.gz
mv wordpress/* /application/nginx/html/blog/
chown -R www.www /application/nginx/html/blog/
第三个里程:直接访问网站,进行初始化操作
创建数据库:
create database
创建连接数据用户信息
grant all on wordpress.* to '用户名'@'localhost' identified by '密码'; select user,host from mysql.user;
7. LNMP架构中数据迁移
在企业生产环境中我们最后需要将数据迁移至后端的存储服务器中,实现动静态资源的分离
这里简单的介绍哈!!!
01. LNMP架构数据库服务的迁移
迁移数据库:利用数据库备份命令(mysql mysqladmin mysqldump)
1) 备份数据库数据库信息
例如:
mysqldump -uroot -p密码 --all-databases >/tmp/bak.sql
ll /tmp/bak.sql -h
scp /tmp/bak.sql 172.16.1.51:/tmp/ #推送到至远程数据库服务器
2) 恢复数据库数据库信息
mysql -uroot -poldboy123 </tmp/bak.sql
###db01添加新的用户
grant all on wordpress.* to 用户名@'172.16.1.0/255.255.255.0' identified by '密码';
flush privileges;
mysql -uwordpress -poldboy123 -h 172.16.1.51
3) 数据库迁移完毕,修改网站连接数据库的配置文件
我此处为php程序连接数据库配置文件
mysql -u用户名 -p密码 -h 172.16.1.51 <-- 修改配置文件之前,先测试网站web服务器与迁移后的数据库连通性
vim wp-config.php <-- 修改wordpress上的数据库连接参数信息
/** MySQL主机 */
define('DB_HOST','172.16.1.51') <-- 修改连接的主机信息,将localhost修改为172.16.1.51
说明:web服务器数据库此时可以关闭了
4)停止nginx服务器上MySQL服务
/etc/init.d/mysql stop
02. LNMP架构数据迁移到NFS存储说明
01:先将原有目录中数据移出
cd /application/nginx/html/blog/wp-content/uploads #我的站点目录下的文件资源路径
mkdir /tmp/wordpress_backup -p
mv ./* /tmp/wordpress_backup/
注意:
数据存储到本地什么位置,获取方法
①. 通过网站页面右键点击,获取资源地址信息
②. find命令利用-mmin 5
③. 利用inotify服务监控目录数据变化
02:NFS服务器上配置创建共享目录
vim /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash)
showmount -e 172.16.1.31
mount -t nfs 172.16.1.31:/data /mnt/ #在web服务器上
showmount -e 172.16.1.31
mount -t nfs 172.16.1.31:/data/ ./uploads/ #将nfs共享服务器上的目录挂载到本地
mv /tmp/wordpress_backup/* ./ #将之前备份的数据还原
LNMP集群架构篇的更多相关文章
- Centos 7 部署lnmp集群架构
前言介绍 lnmp的全程是 linux + nginx + mysql + php; lnmp就是上述系统及应用程序的简写组合: lnmp其实已经代表了一个用户正常对一个页面请求的流程,nginx接收 ...
- 网站集群架构(LVS负载均衡、Nginx代理缓存、Nginx动静分离、Rsync+Inotify全网备份、Zabbix自动注册全网监控)--技术流ken
前言 最近做了一个不大不小的项目,现就删繁就简单独拿出来web集群这一块写一篇博客.数据库集群请参考<MySQL集群架构篇:MHA+MySQL-PROXY+LVS实现MySQL集群架构高可用/高 ...
- 【原创】那些年用过的Redis集群架构(含面试解析)
引言 今天是2019年2月12号,也就是大年初八,我接到了高中同学刘有码面试失利的消息. 他面试的时候,身份是某知名公司的小码农一枚,却因为不懂自己生产上Redis是如何部署的,导致面试失败! 人间惨 ...
- RabbitMQ系列(六)你不知道的RabbitMQ集群架构全解
前言 本文将系统的介绍一下RabbitMQ集群架构的特点.异常处理.搭建和使用中要注意的一些细节. 知识点 一.为什么使用集群? 二.集群的特点 三.集群异常处理 四.集群节点类型 五.集群搭建方法 ...
- Memcached 集群架构方面的问题 [z]
集群架构方面的问题 memcached是怎么工作的? Memcached的神奇来自两阶段哈希(two-stage hash).Memcached就像一个巨大的.存储了很多<key,v ...
- 那些年用过的Redis集群架构
今天我们来谈谈Redis集群这个话题,需要说明的是本文 适合人群:不知道自己生产redis集群架构,以及对Redis集群不了解的人 不适合群: 对自己生产Redis集群架构非常了解的人 本文预计分两个 ...
- Memcached集群架构方面的问题(转)
add by zhj: 这是一个系列中的第二篇,该系列有四篇,英文原文没找到,译文见:http://blog.csdn.net/jarfield/article/details/4336035 ,附上 ...
- Memcached 集群架构问题归纳
集群架构方面的问题o memcached是怎么工作的?o memcached最大的优势是什么?o memcached和MySQL的query cache相比,有什么优缺点?o memcached和服务 ...
- Memcached 集群架构方面的问题
* 集群架构方面的问题 o memcached是怎么工作的? o memcached最大的优势是什么? o memcached和MySQL的query cache相比,有什么优缺点? o memca ...
随机推荐
- 【bzoj4137】[FJOI2015]火星商店问题
*题目描述: 火星上的一条商业街里按照商店的编号1,2 ,…,n ,依次排列着n个商店.商店里出售的琳琅满目的商品中,每种商品都用一个非负整数val来标价.每个商店每天都有可能进一些新商品,其标价可能 ...
- 从源码编译UE4,加快Setup.bat下载文件的环节
之前很傻,每次运行这个setup.bat都要等很久很久才能把4g多的东西下载完成,知道有一天突然发现了世外桃源…… 从命令行运行setup.bat -help,可以看到参数的说明(没错,参数可选,之前 ...
- windows 下的定时任务 (原)
linux 下的定时任务是crontab 以前都是linux的定时任务,这次在windows做了定时任务,简单记录一下(win8 跟 win10为例) windows 2008下的定时任务配置: 控制 ...
- postgresql批量删除表
CREATE FUNCTION del_ora_table() RETURNS void AS $$ DECLARE tmp ); DECLARE names CURSOR FOR select ta ...
- seq使用
转载! 用于产生从某个数到另外一个数之间的所有整数例一:# seq 1 10结果是1 2 3 4 5 6 7 8 9 10例二:#!/bin/bashfor i in `seq 1 10`;doech ...
- DSP处理器和ARM处理器的区别以及各自应用在那些领域
由于工作经常接触到各种多核的处理器,如TI的达芬奇系列芯片拥有1个DSP核3个ARM核.那么DSP处理器和ARM处理器各自有什么区别,各自适合那些领域? DSP:digital signal proc ...
- 关于 token
用户在浏览器做一系列操作,后台服务怎么判断这些操作是来自同一个用户? 1. seesion 用户登录后,后台生成 sessionid 返回给浏览器,浏览器的每次请求带上 sessionid,后台关联 ...
- 《计算机程式设计》Week5 课堂笔记
本笔记记录自 Coursera课程 <计算机程式设计> 台湾大学 刘邦锋老师 Week5 Pointer 5-1 Pointer Definition and Declaration 指针 ...
- AngleSharp 网络数据采集 -- 使用AngleSharp做html解析
AngleSharp AngleSharp is a .NET library that gives you the ability to parse angle bracket bas ...
- Spring002--实现读写分离(Mysql实现主从复制)
Spring AOP实现读写分离(Mysql实现主从复制) 本文来自于博客:http://www.cnblogs.com/bjlhx/p/8297460.html 一.背景 一般应用对数据库而言都是“ ...