0.实验架构:

共6台服务器

分工如下:

服务器

职责

IP地址

Centos版本

描述

A

DNS

172.18.7.70

7

B

Apache

172.18.7.71

7

httpd+php-fpm

C

Apache

172.18.7.72

7

httpd+php-fpm

D

MySQL

172.18.7.73

7

E

NFS

172.18.7.74

7

共享wordpress程序

F

Client

172.18.7.61

6

DNS指向Server A

先准备好所有服务器

所有软件采用yum安装方式安装.

1.MySQL服務器(Server D)

安裝mariaDB并创建数据库wpdb.以及授权两台主机的访问权限.

]# yum install mariadb-server -y
]# systemctl start mariadb ]# mysql
MariaDB [(none)]> create database wpdb;
MariaDB [(none)]> grant all on wpdb.* to 'wpuser'@'172.18.7.71' identified by 'wppass';
Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> grant all on wpdb.* to 'wpuser'@'172.18.7.72' identified by 'wppass';
Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> quit

2.NFS服务器(Server E)

NFS服务一般会被包含在CentOS安装程序中,默认被安装.

查看是否已安装

]# rpm -q nfs-utils

如果没有安装则使用yum安装

]# yum -y install nfs-utils

启动服务

]# systemctl start nfs.service

查看端口

]# ss -tnlp

因为是内核直接监听2049端口所以只显示 *:2049,但不显示监听端口的应用.

创建共享目录,并创建测试文件

]# mkdir /httpdata
]# touch /httpdata/testfile

NFS默认是把客户端用户ID映射到本地用户ID来识别用户的,所以为了apache服务器能够拥有对NFS目录的正常访问权限,httpd服务yum安装默认会创建id为48的apache账号,所以这里给目录设置一个id为48的acl权限.

]# setfacl -Rm u:48:rwx /httpdata/

添加配置

]# vim /etc/exports
/httpdata 172.18.7.71/16(rw) 172.18.7.72/16(rw)

使目录生效

]# exportfs -r

此时如果远程主机用root登陆的话,对此目录是只读的,因为安全起见,root用户默认会被压缩映射为nfsnobody用户.

确保rpcbind服务已开启

]# systemctl status rpcbind

最后把wordpress程序放进共享目录.

]# tar xvf wordpress-4.9.1-zh_CN.tar.gz
]# cp wordpress/* /httpdata/ -R

修改wordpress配置文件

]# cp wp-config-sample.php wp-config.php
]# sed -i 's/database_name_here/wpdb/g' wp-config.php
]# sed -i 's/username_here/wpuser/g' wp-config.php
]# sed -i 's/password_here/wppass/g' wp-config.php
]# sed -i 's/localhost/172.18.7.73/g' wp-config.php

建立php测试页面

]# cd /httpdata/
]# vim phpinfo.php
<?php
phpinfo();
?>

3.Apache服务器(Server B,Server C)

测试NFS共享

]# showmount -e 172.18.7.74
Export list for 172.18.7.74:
/httpdata 172.18.7.72/16,172.18.7.71/16

创建NFS共享目录的挂载点,并挂载

]# mkdir -p /web/html
]# mount -t nfs 172.18.7.74:/httpdata /web/html/ ]# ll /web/html/
total 0
-rw-r--r-- 1 root root 0 Feb 4 04:36 aaa

安装httpd和php

]# yum install httpd php-fpm php-mysql -y

启动服务并测试httpd是否正常工作.

]# systemctl start httpd
]# curl 172.18.7.71

显示欢迎页面为正常.

修改httpd配置文件

]# vim /etc/httpd/conf/httpd.conf
DocumentRoot "/web/html"
DirectoryIndex index.php index.html <Directory "/web/html">
Options None
AllowOverride None
Require all granted
</Directory>

创建fcgi.conf配置文件,用于让httpd支持php

]# vim /etc/httpd/conf.d/fcgi.conf
ProxyRequests off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/web/html/$1

第一行为关闭默认正向代理,使用fcgi反向代理

第二行规定只把.php后缀的内容转发到后端.此处的IP地址为php所在主机地址,可以是远程主机.

修改php-fpm配置文件

]# vim /etc/php-fpm.d/www.conf

listen = 0.0.0.0:9000

listen.owner = nobody
listen.group = nobody
listen.mode = 0666

重启服务

]# systemctl start php-fpm
]# systemctl restart httpd

在浏览器上测试

http://172.18.7.71/phpinfo.php

显示php配置画面则为成功.

安装wordpress

访问172.18.7.71或者172.18.7.72中任意一台,进行wordpress安装配置

http://172.18.7.71

按照说明填写好内容点击左下角的安装wordpress

安装完成,即可通过任意一台Apache服务器访问到内容相同的wordpress站点.

4.DNS服务器(Server A)

安装DNS服务

]# yum install bind -y

修改主配置文件

简单配置,可以直接注释掉几行.

]# vim /etc/named.conf
//listen-on port 53 { 127.0.0.1; };
//allow-query { localhost; };
//dnssec-enable yes;
//dnssec-validation yes;

添加正向解析

]# vim /etc/named.rfc1912.zones
zone "opsnote.com" IN {
type master;
file "opsnote.com.zone";
}; ]# vim /var/named/opsnote.com.zone
$TTL 3600
@ IN SOA ns1 admin (
0
1H
10M
3D
1D)
IN NS ns1
ns1 IN A 172.18.7.70
www IN A 172.18.7.71
www IN A 172.18.7.72

安全起见,要设置区域数据库文件的属组为named.权限为640.

]# chown :named /var/named/opsnote.com.zone
]# chmod 640 /var/named/opsnote.com.zone
]# ll /var/named/opsnote.com.zone
-rw-r----- 1 root named 136 Feb 6 18:38 /var/named/opsnote.com.zone

检查配置

]# named-checkconf
]# cd /var/named
]# named-checkzone opsnote.com opsnote.com.zone
zone opsnote.com/IN: loaded serial 0
OK

检查完成没有问题.

测试

]# dig -t A www.opsnote.com @172.18.7.70

;; ANSWER SECTION:
www.opsnote.com. 3600 IN A 172.18.7.71
www.opsnote.com. 3600 IN A 172.18.7.72

成功.

5.客户端(主机 F)

为了使用DNS进行轮询域名解析,需要将域名的DNS解析设置指向我们自己的DNS服务器.

修改本机DNS为172.18.7.70

]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=172.18.7.70

重启网络服务

]# service network restart

测试

]# ping www.opsnote.com
PING www.opsnote.com (172.18.7.71) 56(84) bytes of data.
64 bytes from 172.18.7.71: icmp_seq=1 ttl=64 time=0.240 ms ]# ping www.opsnote.com
PING www.opsnote.com (172.18.7.72) 56(84) bytes of data.
64 bytes from 172.18.7.72: icmp_seq=1 ttl=64 time=0.288 ms

多次重复尝试,会得到两个解析结果,172.18.7.71和172.18.7.72.

至此可以通过图形界面的浏览器顺利访问www.opsnote.com了.

LAMP配置NFS页面共享,autofs实现挂载,DNS实现名称解析,纯手动操作的更多相关文章

  1. ubuntu 10.10配置NFS网络共享步骤

    安装好交叉编译环境arm-linux-gcc之后,就开始配置NFS网络共享,用于不同的linux主机与目标机之间文件的共享.如果是windows和linux的共享则需用samba服务. NFS(Net ...

  2. LinuxMint(同Ubuntu)下安装配置NFS设置共享目录

    假设有两台机器, 机器A:10.68.93.2 机器B:10.68.93.3 现在需要将机器A上的/opt/nfsshare共享出去,然后挂载到机器B的/nfsshare目录下. 1. 在机器A上: ...

  3. CentOS 6.X配置 NFS以及启动和mount挂载

    一.环境介绍: 服务器:centos 192.168.1.225 客户端:centos 192.168.1.226 二.安装: NFS的安装配置:centos 5 : yum -y install n ...

  4. Linux安装配置nfs实现共享远程目录

    1. 服务端安装nfs yum -y install nfs-utils rpcbind 2.编辑/etc/exports /etc/exports文件内容格式: <输出目录> [客户端1 ...

  5. Linux配置NFS实现共享

    (1)安装相应rpm包 sudo rpm -ivh nfs-utils-1.2.3-70.el6.x86_64.rpm (2)配置共享目录:sudo vim /etc/exports /app/sof ...

  6. Linux下配置nfs并远程挂载实战探讨

    简单介绍: nfs是网络文件系统,允许一个节点通过网络访问远程计算机的文件系统,远程文件系统可以被直接挂载到本地,文件操作和本地没有区别,如果是局域网的nfs那么io的性能也可以保证 nfs是Netw ...

  7. NFS网络共享服务 挂载参数及优化 内核优化建议

    配置NFS服务端 nfs01上安装软件 [root@nfs01 ~]# yum install nfs-utils rpcbind -y nfs-utils:NFS服务的主程序,包括rpc.nfsd. ...

  8. Linux 笔记 - 第二十一章 配置 NFS 服务

    一.前言 NFS(Network File System,网络文件系统),主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录.NFS 客户端(一般为应用服务器,例如web)可以通 ...

  9. Linux:SAMBA共享、NFS共享、Autofs自动挂载

    SAMBA.NFS共享区别 NFS开源文件共享程序:NFS(NetworkFile System)是一个能够将多台Linux的远程主机数据挂载到本地目录的服务,属于轻量级的文件共享服务,不支持Linu ...

随机推荐

  1. The servlets named [create_subscription] and [servlet.create] are both mapped to the url-pattern [/create] which is not permitted [duplicate]

    原因,代码中在public前已经有了默认的配置路径: 如: @WebServlet("/ShowUser")public class ShowUser extends HttpSe ...

  2. [转]OPEN(SAP) UI5 学习入门系列之一:扫盲与热身(上)

    本文转自:http://www.cnblogs.com/qianmarv/p/4671394.html 1 扫盲 什么是SAP Fiori? 了解SAP UI5必须要从SAP Fiori开始,两者概念 ...

  3. Angular2-编写一个简易的组件

    Angular2组件可以这么理解:编写一个类,然后在类的上面用组件装饰器装饰一下,这个类就成组件了. 所以编写组件分两步:1)编写类:2)编写装饰器 1)编写类: export class Simpl ...

  4. C# 文件上传 制作水印

    其实C#的文件上传是非常简单的 前台代码 <asp:FileUpload ID="FileUpload1" accept=".jpg,.png,.jpeg" ...

  5. 二、多线程之Atomic包

    一.简介 1.原子操作 我们在使用变量的时候,经常会出现资源竞争的情况,为了保证变量安全,我们就会对对应的方法添加"synchronized"同步锁来达到目的,以保证线程安全. 而 ...

  6. 【SSH网上商城项目实战12】添加和更新商品功能的实现

    转自: https://blog.csdn.net/eson_15/article/details/51366370 添加商品部分原理和添加商品类别是一样的,不过要比商品类别复杂,因为商品的属性有很多 ...

  7. Hibernate入门(三)—— 一对多、多对多关系

    一.一对多关系 1.概念 ​ 一对多关系是关系型数据库中两个表之间的一种关系.通常在数据库层级中,两表之间是有主外键关系的.在ORM中,如何通过对象描述表之间的关系,是ORM核心. 2.Hiberna ...

  8. 简单工厂模式使用ResourceBundle读取.properties配置文件

    在做项目时,遇到需要创建DAO.Service等类的实例的时候,想到用工厂方法来运作,而简单工厂方法又有明显的缺点: ①由于工厂类集中了所有实例的创建逻辑,违反了高内聚责任分配原则,将全部创建逻辑集中 ...

  9. UNIX IPC: POSIX 消息队列

    首先在我的MAC OSX上试了一下虽然有_POSIX_MESSAGE_PASSING的宏定义,但是用gcc编译会提示没有mqueue.h头文件,先放一边.在Ubuntu上使用正常,不过POSIX消息队 ...

  10. MySql:局域网和权限用户管理

    MySql 5.6(XP)/5.7(win7) 添加用户和设置局域访问权限操作.请在 http://sourceforge.net/  下载MySql Control Center(不是安装版本). ...