阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

LAMP结合NFS构建小型博客站点

135次阅读
没有评论

共计 3537 个字符,预计需要花费 9 分钟才能阅读完成。

网络文件系统(Network File System,NFS)是一种分布式文件系统协议,最初由 Sun Microsystems 公司开发,并于 1984[1] 年发布。其功能旨在允许客户端主机可以像访问本地存储一样通过网络访问服务器端文件。NFS 和其他许多协议一样,是基于 Open Network Computing Remote Procedure Call(ONC RPC) 协议之上的。NFS 在 RFCs 中是一个开放、标准的协议,任何人或组织都可以依据标准实现它。

其实 NFS 是通过 RPC(Remote Procedure Call) 叫做远程过程调用的方式来实现文件共享的,我们都知道如果一个进程想要用到某文件,需要同过系统调用向内核申请,而 RPC 就是将这一系统调用转换为通过网络向远端的另一主机发送文件的调用请求,这样就可以实现文件系统共享了。当然这也会产生很多问题,Client 和 NFS Server 之间的存储格式不兼容怎么办,用户怎样认证、用户权限如何限定等。

为了解决格式不兼容我们使用了半结构化数据,这种数据可以自己完整描述自己数据的意义,不需要对方去解析,如有:XML,JSON,RESTful 方式基于 http 传输。对于用户认证我们早先使用 NIS(Network Information System,2049/tcp,2049/udp),这种协议将用户认证调离到远端的服务器上,而不是在本地。但是这种认证方式并不是加密的,而且容易形成单点故障,所以现在不太常见了。我们现在用到的是 NFS 服务端的两个进程 idmapd 和 mountd。

idmapd:将远程用户映射为本地的 nfsnobody,而远程看到的还是自己的用户

mountd:在访问 nfs 之前进行用户验证,验证过之后给用户一个令牌,用户拿到令牌再进行数据访问,端口随机

 LAMP 结合 NFS 构建小型博客站点

我们这里对 NFS 已经有了一个比较简单的了解了,我们本文的题目是使用 LAMP 结合 NFS 构建简单的博客站点,那么我们在构建过程中在详细的给出 NFS 的搭建,我们先来看一下物理拓扑图:

LAMP 结合 NFS 构建小型博客站点

这个拓扑是这么规划的:客户端通过 DNS 的轮训调度,能够让用户访问两台 web 服务器来实现负载均衡,而网页中的动态内容则通过 PHP Server 来处理,用户博客的账号信息存储在 MariaDB Server 上,而页面文件通过 NFS Server 共享的文件系统来存放。

OK,我们来一步步构建这个拓扑,大家看到图上一共有六个服务器,我这里使用的是虚拟机而且只有三台,所以我把这个拓扑给压缩一下:

DNS Server&&Web1:IPà192.168.23.132

PHP Server&&Web2:IPà192.168.23.130,192.168.80.129

NFS Server&&MariaDB Server:IPà192.168.80.130

网络我已经调试通了,每个 IP 都可以相互 ping 通。

1.DNS Server 已经建好,并且能够轮训调度两个 web 站点:

LAMP 结合 NFS 构建小型博客站点2

LAMP 结合 NFS 构建小型博客站点

LAMP 结合 NFS 构建小型博客站点

2. 配置 Web1/Web2 站点

编译安装 httpd-2.4 我在以前的博客中讲过了,就不再详细解释了,就看一下配置就好了。

我这里为了节省时间就没有再使用虚拟主机了。至于 PHP 服务器编译安装,然后一启动就好了,没有什么额外的配置,如果不太清楚可以去看我以前的博客

vim /etc/httpd24/httpd.conf

216 DocumentRoot “/web/blog”

217        ProxyRequests Off

218        ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.23.130:9000/web/blog/$1

219 <Directory “/web/blog”>

251 <IfModule dir_module>

252    DirectoryIndex index.php index.html

253 </IfModule>

381    AddType application/x-httpd-php .php

382    AddType application/x-httpd-php-source .phps

115 LoadModule proxy_module modules/mod_proxy.so

119 LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

3. 配置 NFS

yum install nfs-utils

[root@db ~]# vim /etc/exports

/web/blog 192.168.23.132(rw,async,no_root_squash) 192.168.23.130(rw,async,no_root_squash) 192.168.80.129(rw,async,no_root_squash)

# 这里的 no_root_squash 可以不加,因为我在做实验时客户端的写权限一直有问题所以在做诸多尝试

# 还有一点需要提醒,我们可以建一个与 web server 上启动 httpd 进程的用户名和 ID 号相同的一个用户,然后给它设定 facl,或者上 httpd 进程的启动用户为 nobody

setfacl -R -m u:http:rwx /web/blog

tar xf /root/wordpress-4.2.2-zh_CN.tar.gz -C /web/

mv wordpress blog

cp wp-config-sample.php wp-config.php

vim wp-config.php

17 /** WordPress 数据库的名称 */

18 define(‘DB_NAME’, ‘blog’);

19

20 /** MySQL 数据库用户名 */

21 define(‘DB_USER’, ‘buser’);

22

23 /** MySQL 数据库密码 */

24 define(‘DB_PASSWORD’, ‘bpass’);

25

26 /** MySQL 主机 */

27 define(‘DB_HOST’, ‘192.168.80.130’);

4. 配置 MariaDB

cat  ~/.mysql_history #查看 mysql 的历史命令

create database blog;

grant user buser@’192.168.%.%’ identified by ‘bpass’;

create user buser@’192.168.%.%’ identified by ‘bpass’;

grant all on blog.* to buser@’192.168.%.%’;

flush privileges;

# 这里因为我以前做过搭建 blog 的实验所以遗留了很多数据也产生了一堆的问题,所以我又删除了很多表,这里就体现出 phpMyadmin 的好用之处了

5. 在 Web1&Web2 挂载 NFS

mount -t nfs 192.168.80.130:/web/blog /web/blog/

vim /etc/fstab

192.168.80.130:/web/blog /web/blog  nfs    defaults,_netdev  0 0

# 开机自动挂载

6. 测试访问,并上传数据

 LAMP 结合 NFS 构建小型博客站点

LAMP 结合 NFS 构建小型博客站点LAMP 结合 NFS 构建小型博客站点LAMP 结合 NFS 构建小型博客站点

我们稍微解释一下这个结果,因为我是使用物理机访问的,所以没有使用 DNS,但是我们在 DNS 的测试结果中看到了是可以实现负载均衡的。还有一点就是因为我的 PHP Server 和 Web2 在同一主机所以一旦登录就跳转到 Web2 的 IP 之上了,这里希望大家理解并不是 Web1 不可用。

OK,到此为止我们的小型博客网站就搭建好了,其实大部分的网站都是由小到大的,我们以后在此基础上不断的扩充就可以完成一系列高并发、高可靠的网站了。如有错误敬请指出。

LAMP 平台安装 Xcache 和 Memcached 加速网站运行  http://www.linuxidc.com/Linux/2015-06/118835.htm 

CentOS 7 下搭建 LAMP 平台环境  http://www.linuxidc.com/Linux/2015-06/118818.htm

CentOS 6.5 系统安装配置 LAMP(Apache+PHP5+MySQL) 服务器环境 http://www.linuxidc.com/Linux/2014-12/111030.htm

Ubuntu 14.04 配置 LAMP+phpMyAdmin PHP(5.5.9) 开发环境  http://www.linuxidc.com/Linux/2014-10/107924.htm

Ubuntu 14.10 下安装 LAMP 服务图文详解  http://www.linuxidc.com/Linux/2014-12/110082.htm

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2015-08/121029.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计3537字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中