标签:img nginx服务 nginx lnmp top 关闭 set 磁盘 hdd
案例概述某公司的社交网站采用PHP语言开发,为了管理PHP程序员开发的代码,上级领导要求搭建SVN服务器进行版本控制。社交网站的第一个版本部署在LNMP平台之上,前端为Nginx服务器,通过fastcgi协议访问后端的PHP服务器。为了保证数据安全,要求搭建MySQL数据库主从集群。
社交网站项目包含用户的相册功能,允许用户上传照片,上传照片需要使用共享存储来存放。针对共享存储可用的开源方案有很多,如MFS、FastDFS 等。公司决定使用MFS分布式文件系统来实现,并将MFS挂载在PHP服务器的相关目录下。
根据公司的需求,实施过程大致分为以下步骤。
yum install -y zlib-devel gcc gcc-c++ //安装依赖包环境包
useradd mfs -s /sbin/nologin -M //创建管理用户
tar xzvf mfs-1.6.27-5.tar.gz -C /opt/
cd /opt/mfs-1.6.27/
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount
make && make install
cd /usr/local/mfs/etc/mfs/
cp mfsmaster.cfg.dist mfsmaster.cfg # 主配置文件
cp mfsexports.cfg.dist mfsexports.cfg # 挂载权限
cp mfstopology.cfg.dist mfstopology.cfg # top架构感知
cd /usr/local/mfs/var/mfs/
cp metadata.mfs.empty metadata.mfs #防断裂
/usr/local/mfs/sbin/mfsmaster start //开启
/usr/local/mfs/sbin/mfsmaster -s //停止
netstat -antp | grep mfs
systemctl stop firewalld.service
setenforce 0 //关闭防火墙和安全功能
yum install -y zlib-devel gcc gcc-c++ //安装依赖包环境包
useradd mfs -s /sbin/nologin -M //创建管理用户
tar xzvf mfs-1.6.27-5.tar.gz -C /opt/
cd /opt/mfs-1.6.27/
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount
make && make install
cd /usr/local/mfs/etc/mfs/
cp mfsmaster.cfg.dist mfsmaster.cfg
cp mfsexports.cfg.dist mfsexports.cfg
cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
vim mfsmetalogger.cfg
......
MASTER_HOST = 192.168.43.118 //IP指向master
/usr/local/mfs/sbin/mfsmetalogger start //开启
/usr/local/mfs/sbin/mfsmetalogger -s //停止
netstat -antp | grep mfs
systemctl stop firewalld.service
setenforce 0 //关闭防火墙和安全功能
yum install -y zlib-devel gcc gcc-c++ //安装依赖包环境包
useradd mfs -s /sbin/nologin -M //创建管理用户
tar xzvf mfs-1.6.27-5.tar.gz -C /opt/
cd /opt/mfs-1.6.27/
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfsmount
make && make install
cd /usr/local/mfs/etc/mfs/
cp mfschunkserver.cfg.dist mfschunkserver.cfg
cp mfshdd.cfg.dist mfshdd.cfg
vim mfschunkserver.cfg
......
MASTER_HOST = 192.168.43.118 //IP指向master
vim mfshdd.cfg
......
/data //添加一行/data,在这里/data是一个给MFS的分区,生产环境最好使用独立的分区或磁盘挂载到此目录
mkdir /data //创建文件夹
chown -R mfs:mfs /data //属主属组都改为mfs
/usr/local/mfs/sbin/mfschunkserver start //开启
/usr/local/mfs/sbin/mfschunkserver start -s //停止
netstat -antp | grep mfs
systemctl stop firewalld.service
setenforce 0 //关闭防火墙和安全功能
此处PHP服务器是客户端角色,在PHP服务器上搭建
yum install -y zlib-devel gcc gcc-c++ //安装依赖包环境包
tar xzvf fuse-2.9.2.tar.gz -C /opt //mfs客户端依赖于fuse
cd /opt/fuse-2.9.2
./configure
make && make install
vim /etc/profile
#在末尾处插入
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
source /etc/profile //加载立即生效
useradd mfs -s /sbin/nologin -M //创建管理用户
tar xzvf mfs-1.6.27-5.tar.gz -C /opt/
cd /opt/mfs-1.6.27/
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --enable-mfsmount //注意此处开启客户端
make && make install
将MFS文件系统挂载在前端PHP服务器的/var/www/html/webphp/uploads/photos目录下
mkdir -p /var/www/html/webphp/uploads/photos //创建挂载点
modprobe fuse //加载fuse模块到内核
/usr/local/mfs/bin/mfsmount /var/www/html/webphp/uploads/photos -H 192.168.43.118 //挂载MFS
标签:img nginx服务 nginx lnmp top 关闭 set 磁盘 hdd
原文地址:http://blog.51cto.com/13641879/2151786