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

NFS实现LAMP分离多服务器同步更新服务

101次阅读
没有评论

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

上一篇 Linux 下编译安装 LAMP 并分离为多台服务器写的是 LAMP 分离为多台主机;但是由于是各自独立;如需要更新或用户更新数据时;需要每台机器单独更新;且如 httpd 服务器等都是需要多台的话就会出现数据不同步的现象;现在就上一篇进行补全;实现多台 httpd 主机利用 NFS 文件系统基于 RPC 协议来同步更新数据。

Ubuntu 13.04 安装 LAMP\Vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

CentOS 5.9 下编译安装 LAMP(Apache 2.2.44+MySQL 5.6.10+PHP 5.4.12) http://www.linuxidc.com/Linux/2013-03/80333p3.htm

RedHat 5.4 下 Web 服务器架构之源码构建 LAMP 环境及应用 PHPWind http://www.linuxidc.com/Linux/2012-10/72484p2.htm

LAMP 源码环境搭建 WEB 服务器 Linux+Apache+MySQL+PHP http://www.linuxidc.com/Linux/2013-05/84882.htm

大致规划:

网段:172.16.251.

1 台 DNS 服务器 (172.16.251.84)

2 台 httpd 服务器 (172.16.251.85/86)

1 台 php 服务器 (172.16.251.87)

1 台 mysql 服务器 (172.16.251.88)

做了四个域名解析到 2 台 httpd 服务器上:

域名:www.myadmin.cn www.soul.org www.linuxidc.com www.88181.com

NFS 实现 LAMP 分离多服务器同步更新服务

一、NFS 和 RPC 定义

网络文件系统(Network File System,NFS),一种使用于分散式文件系统的协议,由 SUN 公司开发,于 1984 年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在 Unix 系统间实现磁盘文件共享的一种方法。NFS 的基本原则是“容许不同的客户端及服务端通过一组 RPC 分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。目前最新版本为 NFSv4。

远程过程调用(Remote Procedure Call,RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。

 

二、安装配置 NFS 服务

NFS 是由 nfs-utils 软件包提供的;可以先查看系统上是否安装;如未安装可以先使用 yum 来安装

[Linux87]#rpm -qa nfs*

nfs-utils-lib-1.1.5-6.el6.x86_64

nfs-utils-1.2.3-39.el6.x86_64

nfs4-acl-tools-0.3.3-6.el6.x86_64

[Linux87]#rpm -ql nfs-utils  查看该包安装生成了哪些文件

/etc/nfsmount.conf

/etc/rc.d/init.d/nfs

/etc/rc.d/init.d/nfslock

/etc/rc.d/init.d/rpcgssd

/etc/rc.d/init.d/rpcidmapd

/etc/rc.d/init.d/rpcsvcgssd

/etc/request-key.d/id_resolver.conf 

安装成功后既可启动:

[Linux87]#service nfs start

Starting NFS services:                                    [OK]

Starting NFS quotas:                                      [OK]

Starting NFS mountd:                                      [OK]

Starting NFS daemon:                                      [OK]

Starting RPC idmapd:                                      [OK]

# 默认就启动上述这么多服务

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

[Linux87]#rpcinfo  可以查看详细信息

  program version netid    address                service    owner

    100000    4    tcp      0.0.0.0.0.111          portmapper superuser

    100000    3    tcp      0.0.0.0.0.111          portmapper superuser

    100000    2    tcp      0.0.0.0.0.111          portmapper superuser

    100000    4    udp      0.0.0.0.0.111          portmapper superuser

    100000    3    udp      0.0.0.0.0.111          portmapper superuser

    100000    2    udp      0.0.0.0.0.111          portmapper superuser

    100000    4    local    /var/run/rpcbind.sock  portmapper superuser

    100000    3    local    /var/run/rpcbind.sock  portmapper superuser

    100024    1    udp      0.0.0.0.230.98        status    29

    100024    1    tcp      0.0.0.0.144.225        status    29

    100011    1    udp      0.0.0.0.3.107          rquotad    superuser

    100011    2    udp      0.0.0.0.3.107          rquotad    superuser

    100011    1    tcp      0.0.0.0.3.107          rquotad    superuser

    100011    2    tcp      0.0.0.0.3.107          rquotad    superuser

2、配置 NFS 共享文件系统

需要共享的是 PHP 的服务器;共享给指定的两台 httpd 主机;所以可以直接指定 IP 地址;这里单独建立一个分区用于 NFS;挂载至 web 配置文件中指定的 DocumentRoot 目录;当然也可以先挂载在配置;这里是由于之前已配置好服务;所以直接挂载文件为指定目录:

httpd 配置中的路径:

[WEB85]#cat /etc/httpd24/extra/httpd-vhosts.conf

#

<VirtualHost *:80>

    ServerAdmin  admin@linuxidc.com

    DocumentRoot “/usr/local/apache/www/linuxidc” #本地路径

    ServerName www.linuxidc.com

    ServerAlias linuxidc.com

    ErrorLog “/usr/local/apache/logs/linuxidc.error_log”

    CustomLog “/usr/local/apache/logs/linuxidc.access_log” combined

    ProxyRequests Off

    ProxyPassMatch ^/(.*\.php)$ fcgi://172.16.251.87:9000/var/www/linuxidc/$1

                                       

# 上面这个路径就是 PHP 服务器的存放路径;也就是需要共享的 NFS 路径:/var/www

                                             

    <Directory “/usr/local/apache/www/linuxidc”>

        DirectoryIndex index.html index.php

        Options none

        Require all granted

    </Directory>

</VirtualHost>

 

[PHP87]#mount

/dev/mapper/vg0-root on / type ext4 (rw)

proc on /proc type proc (rw)

sysfs on /sys type sysfs (rw)

devpts on /dev/pts type devpts (rw,gid=5,mode=620)

tmpfs on /dev/shm type tmpfs (rw)

/dev/sda1 on /boot type ext4 (rw)

/dev/mapper/vg0-usr on /usr type ext4 (rw)

/dev/mapper/vg0-var on /var type ext4 (rw)

/dev/sda3 on /var/www type ext4 (rw,acl)  #这个目录

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

nfsd on /proc/fs/nfsd type nfsd (rw)

#**** 注意:挂载时在 fstab 中写入需要 acl 属性 ****

                                                                                               

# 配置 NFS 主要是修改 /etc/exports 文件

[PHP87]#vim /etc/exports

# 文件格式很简单:

文件系统    客户端 1(文件系统导出属性 1 …)  客户端 2()

                                   

/var/www        172.16.251.85(rw)              172.16.251.86(rw)

                                   

#rw:读写

#async:异步

#sync:同步

#root_squash:压缩 root 用户;基于 imapd;将 root 通过网络访问时转为 #nfsnobody 用户

#no_root_squash:不压缩 root 权限

#all_squash:压缩所有用户

#anonuid=[num]:指定匿名用户映射为的 UID 和 GID

#anongid=[num]

修改完成后可以查看属性

 

[PHP87]#exportfs -v

/var/www        172.16.251.85(rw,wdelay,root_squash,no_subtree_check)

/var/www        172.16.251.86(rw,wdelay,root_squash,no_subtree_check)

[PHP87]# 其中有很多默认属性的

现在可以去 httpd 服务器查看该机器的共享 NFS

 

[WEB85]#showmount -e 172.16.251.87

Export list for 172.16.251.87:

/var/www 172.16.251.86,172.16.251.85

[WEB85]#

[WEB86]#showmount -e 172.16.251.87

Export list for 172.16.251.87:

/var/www 172.16.251.86,172.16.251.85

[WEB86]#

3、挂载配置读写权限

mount -t type device dir

    -t:指定文件系统类型

[WEB85]#mount -t nfs 172.16.251.87:/var/www/ /usr/local/apache/www/

[WEB85]#mount

/dev/mapper/vg0-root on / type ext4 (rw)

proc on /proc type proc (rw)

sysfs on /sys type sysfs (rw)

devpts on /dev/pts type devpts (rw,gid=5,mode=620)

tmpfs on /dev/shm type tmpfs (rw)

/dev/sda1 on /boot type ext4 (rw)

/dev/mapper/vg0-usr on /usr type ext4 (rw)

/dev/mapper/vg0-var on /var type ext4 (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

172.16.251.87:/var/www/ on /usr/local/apache/www type nfs (rw,vers=4,addr=172.16.251.87,clientaddr=172.16.251.85)

# 查看以挂载;第二台 httpd 也需要同样挂载;挂载完成后记得写入到 /etc/fstab 中

                                                                                       

[WEB85]#vim /etc/fstab

增加下面这行内容

172.16.251.87:/var/www  /usr/local/apache/www  nfs    defaults,_netdev        0 0

                                                                                                                                                                                                                                   

挂载完成后;是无法写入数据的

[WEB85]#cd /usr/local/apache/www/

[WEB85]#mkdir aa

mkdir: cannot create directory `aa’: Permission denied

[WEB85]#

                                                                           

需要到 php 服务器配置 NFS 的权限;为了安全;新建立一个账户;httpd 服务器也建立同样的账户

[PHP87]#useradd -u 600 web

[PHP87]#id web

uid=600(web) gid=600(web) groups=600(web)

[PHP87]#setfacl -R -m u:600:rwx /var/www/  - R 是因为其下面有其他的目录

[PHP87]#getfacl /var/www/

getfacl: Removing leading ‘/’ from absolute path names

# file: var/www/

# owner: root

# group: root

user::rwx

user:web:rwx

group::r-x

mask::rwx

other::r-x

                                                                                                                                                                                                                                                       

#httpd 两台服务器建立相应的账户

[WEB85]#useradd -u 600 web

[WEB85]#su – web

[web@localhost ~]$ cd /usr/local/apache/www/

[web@localhost www]$ mkdir aaa

[web@localhost www]$ ll

total 52

drwxrwxr-x  2 nobody nobody  4096 Mar 26 16:09 aaa

# 测试创建成功

三、配置 DNS 服务

1、域名系统(英文:Domain Name System,DNS)是因特网的一项服务。它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。DNS 使用 TCP 和 UDP 端口 53。目前最常用的软件为 BIND;先查看是否安装;如未安装直接 yum 安装即可。

[DNS84]#rpm -qa bind*

bind-devel-9.8.2-0.23.rc1.el6_5.1.x86_64

bind-libs-9.8.2-0.23.rc1.el6_5.1.x86_64

bind-9.8.2-0.23.rc1.el6_5.1.x86_64

bind-utils-9.8.2-0.23.rc1.el6_5.1.x86_64

[DNS84]#

查看具体安装了哪些文件

[DNS84]#rpm -ql bind

/etc/NetworkManager/dispatcher.d/13-named

/etc/logrotate.d/named

/etc/named

/etc/named.conf

/etc/named.iscdlv.key

/etc/named.rfc1912.zones

/etc/named.root.key

/etc/portreserve/named

/etc/rc.d/init.d/named

/etc/rndc.conf

/etc/rndc.key

/etc/sysconfig/named

/usr/lib64/bind

/usr/sbin/arpaname

2、配置域名解析至 web 服务器

[DNS84]#vim /etc/named.conf

这是主配置文件;只需要注释掉其中部分内容即可;注意 // 为注释符

// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS

// server as a caching only nameserver (as a localhost DNS resolver only).

//

// See /usr/share/doc/bind*/sample/ for example named configuration files.

//

options {

//      listen-on port 53 {127.0.0.1;}; #注释

//      listen-on-v6 port 53 {::1;};    #注释

        directory      “/var/named”;

        dump-file      “/var/named/data/cache_dump.db”;

        statistics-file “/var/named/data/named_stats.txt”;

        memstatistics-file “/var/named/data/named_mem_stats.txt”;

//      allow-query    {localhost;};  #注释

        recursion yes;

//      dnssec-enable yes;                #注释

//      dnssec-validation yes;            #注释

//      dnssec-lookaside auto;            #注释

        /* Path to ISC DLV key */

//      bindkeys-file “/etc/named.iscdlv.key”;    #注释

//      managed-keys-directory “/var/named/dynamic”;    #注释

};

logging {

        channel default_debug {

                file “data/named.run”;

                severity dynamic;

        };

};

zone “.” IN {

        type hint;

        file “named.ca”;

};

include “/etc/named.rfc1912.zones”;    注意需要去这个文件内修改

include “/etc/named.root.key”;

 

[DNS84]#vim /etc/named.rfc1912.zones

# 添加如下几个区域文件;都是对应的域名

zone “soul.org.” IN {

        type master;      #类型 主

        file “soul.org.zone”; #文件位置;相对主配置文件中 directory 的相对路径

};

zone “myadmin.cn.” IN {

        type master;

        file “myadmin.com.zone”;

};

zone “88181.com.” IN {

        type master;

        file “88181.com.zone”;

};

zone “linuxidc.com.” IN {

        type master;

        file “linuxidc.com.zone”;

};   

上述内容添加好;文件还是没有的;配置文件中指定的目录创建这些文件;注意权限

[DNS84]#pwd

/var/named

[DNS84]#ll

total 44

-rw-r–r– 1 root  root    0 Mar 26 13:38 a.out

-rw-r—– 1 root  named  227 Mar 26 15:04 88181.com.zone

drwxrwx— 2 named named 4096 Mar 26 11:34 data

drwxrwx— 2 named named 4096 Mar 26 14:12 dynamic

-rw-r—– 1 root  named  233 Mar 26 14:52 myadmin.cn.zone

-rw-r—– 1 root  named 1892 Feb 18  2008 named.ca

-rw-r—– 1 root  named  152 Dec 15  2009 named.empty

-rw-r—– 1 root  named  152 Jun 21  2007 named.localhost

-rw-r—– 1 root  named  168 Dec 15  2009 named.loopback

-rw-r—– 1 root  named  227 Mar 26 15:05 linuxidc.com.zone

drwxrwx— 2 named named 4096 Jan 21 01:40 slaves

-rw-r—– 1 root  named  227 Mar 26 14:48 soul.org.zone

[DNS84]#

[DNS84]#vim soul.org.zone

# 具体内容如下

$TTL 600

@      IN SOA  dns.soul.org.  admin.soul.org. (

                                        20140326000    ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

        IN      NS      dns    #ns 记录

dns    IN      A      172.16.251.84 #ns 对应的 A 记录

www    IN      A      172.16.251.85 #解析到 85 的域名

www    IN      A      172.16.251.86 #解析到 86 的域名

# 同理;其他几个文件也是这样设置的

配置完成后需要检查下语法

[DNS84]#named-check

named-checkconf  named-checkzone

为主配置文件和区域文件的检查命令

设置完成后把其他几台机器的 DNS 指向该 DNS 服务器的 IP 即可

 

记得把其他主机的 DNS 指向 DNS 服务器

[WEB85]#cat /etc/resolv.conf

# Generated by NetworkManager

nameserver 172.16.251.84

其他几台也是一样的。

     

然后进行测试

[PHP87]#ping www.soul.org

PING www.soul.org (172.16.251.85) 56(84) bytes of data.

64 bytes from 172.16.251.85: icmp_seq=1 ttl=64 time=1.00 ms

64 bytes from 172.16.251.85: icmp_seq=2 ttl=64 time=0.591 ms

^C

— www.soul.org ping statistics —

2 packets transmitted, 2 received, 0% packet loss, time 1326ms

rtt min/avg/max/mdev = 0.591/0.797/1.004/0.208 ms

[PHP87]#ping www.soul.org

PING www.soul.org (172.16.251.86) 56(84) bytes of data.

64 bytes from 172.16.251.86: icmp_seq=1 ttl=64 time=0.712 ms

64 bytes from 172.16.251.86: icmp_seq=2 ttl=64 time=0.460 ms

64 bytes from 172.16.251.86: icmp_seq=3 ttl=64 time=0.486 ms

完成后记得添加一个 windows 的 DNS 地址为配置的 DNS 服务器 IP 地址。

四、测试配置一个 discuz 论坛和 phpmyadmin

[web@86 myadmin]$ pwd

/usr/local/apache/www/myadmin

[web@86 myadmin]$ unzip phpMyAdmin-4.0.5-all-languages.zip

[web@86 myadmin]$ mv phpMyAdmin-4.0.5-all-languages/* ./

[web@86 myadmin]$ cp config.sample.inc.php config.inc.php

[web@86 myadmin]$ vi config.inc.php

/* Authentication type */

$cfg[‘Servers’][$i][‘auth_type’] = ‘cookie’;

/* Server parameters */

$cfg[‘Servers’][$i][‘host’] = ‘172.16.251.88’;  #更改该项

$cfg[‘Servers’][$i][‘connect_type’] = ‘tcp’;

$cfg[‘Servers’][$i][‘compress’] = false;

/* Select MySQL if your server does not have mysqli */

$cfg[‘Servers’][$i][‘extension’] = ‘mysqli’;

$cfg[‘Servers’][$i][‘AllowNoPassword’] = false;

[web@86 myadmin]

# 完成后保存即可测试

 

NFS 实现 LAMP 分离多服务器同步更新服务
测试登陆成功。

2、下面使用 httpd 85 机器安装 discuz 论坛

 [web@85 linuxidc]$

[web@85 linuxidc]$ ls

Discuz_X3.1_SC_UTF8.zip

[web@85 linuxidc]$ pwd

/usr/local/apache/www/linuxidc

[web@85 linuxidc]$ unzip Discuz_X3.1_SC_UTF8.zip

[web@85 linuxidc]$ chmod -R 777 upload/

[web@85 linuxidc]$ mv upload/* ./

到此以完成,可以直接在浏览器中访问安装了

也可以先去 86 上看下目录下的类容

[web@86 linuxidc]$ ls

Discuz_X3.1_SC_UTF8.zip  config          favicon.ico  install    readme      template    utility

admin.php                connect.php      forum.php    member.php  robots.txt  uc_client

api                      cp.php          group.php    misc.php    search.php  uc_server

api.php                  crossdomain.xml  home.php    plugin.php  source      upload

archiver                data            index.php    portal.php  static      userapp.php

都是同时操作更新的。

NFS 实现 LAMP 分离多服务器同步更新服务
数据库安装时注意指定数据库主机的 IP

 NFS 实现 LAMP 分离多服务器同步更新服务NFS 实现 LAMP 分离多服务器同步更新服务

数据库也是同步更新的。到此配置以完成。其他几个都可以相应的放入其他域名网站。

上一篇 Linux 下编译安装 LAMP 并分离为多台服务器写的是 LAMP 分离为多台主机;但是由于是各自独立;如需要更新或用户更新数据时;需要每台机器单独更新;且如 httpd 服务器等都是需要多台的话就会出现数据不同步的现象;现在就上一篇进行补全;实现多台 httpd 主机利用 NFS 文件系统基于 RPC 协议来同步更新数据。

Ubuntu 13.04 安装 LAMP\Vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

CentOS 5.9 下编译安装 LAMP(Apache 2.2.44+MySQL 5.6.10+PHP 5.4.12) http://www.linuxidc.com/Linux/2013-03/80333p3.htm

RedHat 5.4 下 Web 服务器架构之源码构建 LAMP 环境及应用 PHPWind http://www.linuxidc.com/Linux/2012-10/72484p2.htm

LAMP 源码环境搭建 WEB 服务器 Linux+Apache+MySQL+PHP http://www.linuxidc.com/Linux/2013-05/84882.htm

大致规划:

网段:172.16.251.

1 台 DNS 服务器 (172.16.251.84)

2 台 httpd 服务器 (172.16.251.85/86)

1 台 php 服务器 (172.16.251.87)

1 台 mysql 服务器 (172.16.251.88)

做了四个域名解析到 2 台 httpd 服务器上:

域名:www.myadmin.cn www.soul.org www.linuxidc.com www.88181.com

NFS 实现 LAMP 分离多服务器同步更新服务

一、NFS 和 RPC 定义

网络文件系统(Network File System,NFS),一种使用于分散式文件系统的协议,由 SUN 公司开发,于 1984 年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在 Unix 系统间实现磁盘文件共享的一种方法。NFS 的基本原则是“容许不同的客户端及服务端通过一组 RPC 分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。目前最新版本为 NFSv4。

远程过程调用(Remote Procedure Call,RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。

 

二、安装配置 NFS 服务

NFS 是由 nfs-utils 软件包提供的;可以先查看系统上是否安装;如未安装可以先使用 yum 来安装

[Linux87]#rpm -qa nfs*

nfs-utils-lib-1.1.5-6.el6.x86_64

nfs-utils-1.2.3-39.el6.x86_64

nfs4-acl-tools-0.3.3-6.el6.x86_64

[Linux87]#rpm -ql nfs-utils  查看该包安装生成了哪些文件

/etc/nfsmount.conf

/etc/rc.d/init.d/nfs

/etc/rc.d/init.d/nfslock

/etc/rc.d/init.d/rpcgssd

/etc/rc.d/init.d/rpcidmapd

/etc/rc.d/init.d/rpcsvcgssd

/etc/request-key.d/id_resolver.conf 

安装成功后既可启动:

[Linux87]#service nfs start

Starting NFS services:                                    [OK]

Starting NFS quotas:                                      [OK]

Starting NFS mountd:                                      [OK]

Starting NFS daemon:                                      [OK]

Starting RPC idmapd:                                      [OK]

# 默认就启动上述这么多服务

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

[Linux87]#rpcinfo  可以查看详细信息

  program version netid    address                service    owner

    100000    4    tcp      0.0.0.0.0.111          portmapper superuser

    100000    3    tcp      0.0.0.0.0.111          portmapper superuser

    100000    2    tcp      0.0.0.0.0.111          portmapper superuser

    100000    4    udp      0.0.0.0.0.111          portmapper superuser

    100000    3    udp      0.0.0.0.0.111          portmapper superuser

    100000    2    udp      0.0.0.0.0.111          portmapper superuser

    100000    4    local    /var/run/rpcbind.sock  portmapper superuser

    100000    3    local    /var/run/rpcbind.sock  portmapper superuser

    100024    1    udp      0.0.0.0.230.98        status    29

    100024    1    tcp      0.0.0.0.144.225        status    29

    100011    1    udp      0.0.0.0.3.107          rquotad    superuser

    100011    2    udp      0.0.0.0.3.107          rquotad    superuser

    100011    1    tcp      0.0.0.0.3.107          rquotad    superuser

    100011    2    tcp      0.0.0.0.3.107          rquotad    superuser

2、配置 NFS 共享文件系统

需要共享的是 PHP 的服务器;共享给指定的两台 httpd 主机;所以可以直接指定 IP 地址;这里单独建立一个分区用于 NFS;挂载至 web 配置文件中指定的 DocumentRoot 目录;当然也可以先挂载在配置;这里是由于之前已配置好服务;所以直接挂载文件为指定目录:

httpd 配置中的路径:

[WEB85]#cat /etc/httpd24/extra/httpd-vhosts.conf

#

<VirtualHost *:80>

    ServerAdmin  admin@linuxidc.com

    DocumentRoot “/usr/local/apache/www/linuxidc” #本地路径

    ServerName www.linuxidc.com

    ServerAlias linuxidc.com

    ErrorLog “/usr/local/apache/logs/linuxidc.error_log”

    CustomLog “/usr/local/apache/logs/linuxidc.access_log” combined

    ProxyRequests Off

    ProxyPassMatch ^/(.*\.php)$ fcgi://172.16.251.87:9000/var/www/linuxidc/$1

                                       

# 上面这个路径就是 PHP 服务器的存放路径;也就是需要共享的 NFS 路径:/var/www

                                             

    <Directory “/usr/local/apache/www/linuxidc”>

        DirectoryIndex index.html index.php

        Options none

        Require all granted

    </Directory>

</VirtualHost>

 

[PHP87]#mount

/dev/mapper/vg0-root on / type ext4 (rw)

proc on /proc type proc (rw)

sysfs on /sys type sysfs (rw)

devpts on /dev/pts type devpts (rw,gid=5,mode=620)

tmpfs on /dev/shm type tmpfs (rw)

/dev/sda1 on /boot type ext4 (rw)

/dev/mapper/vg0-usr on /usr type ext4 (rw)

/dev/mapper/vg0-var on /var type ext4 (rw)

/dev/sda3 on /var/www type ext4 (rw,acl)  #这个目录

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

nfsd on /proc/fs/nfsd type nfsd (rw)

#**** 注意:挂载时在 fstab 中写入需要 acl 属性 ****

                                                                                               

# 配置 NFS 主要是修改 /etc/exports 文件

[PHP87]#vim /etc/exports

# 文件格式很简单:

文件系统    客户端 1(文件系统导出属性 1 …)  客户端 2()

                                   

/var/www        172.16.251.85(rw)              172.16.251.86(rw)

                                   

#rw:读写

#async:异步

#sync:同步

#root_squash:压缩 root 用户;基于 imapd;将 root 通过网络访问时转为 #nfsnobody 用户

#no_root_squash:不压缩 root 权限

#all_squash:压缩所有用户

#anonuid=[num]:指定匿名用户映射为的 UID 和 GID

#anongid=[num]

修改完成后可以查看属性

 

[PHP87]#exportfs -v

/var/www        172.16.251.85(rw,wdelay,root_squash,no_subtree_check)

/var/www        172.16.251.86(rw,wdelay,root_squash,no_subtree_check)

[PHP87]# 其中有很多默认属性的

现在可以去 httpd 服务器查看该机器的共享 NFS

 

[WEB85]#showmount -e 172.16.251.87

Export list for 172.16.251.87:

/var/www 172.16.251.86,172.16.251.85

[WEB85]#

[WEB86]#showmount -e 172.16.251.87

Export list for 172.16.251.87:

/var/www 172.16.251.86,172.16.251.85

[WEB86]#

3、挂载配置读写权限

mount -t type device dir

    -t:指定文件系统类型

[WEB85]#mount -t nfs 172.16.251.87:/var/www/ /usr/local/apache/www/

[WEB85]#mount

/dev/mapper/vg0-root on / type ext4 (rw)

proc on /proc type proc (rw)

sysfs on /sys type sysfs (rw)

devpts on /dev/pts type devpts (rw,gid=5,mode=620)

tmpfs on /dev/shm type tmpfs (rw)

/dev/sda1 on /boot type ext4 (rw)

/dev/mapper/vg0-usr on /usr type ext4 (rw)

/dev/mapper/vg0-var on /var type ext4 (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

172.16.251.87:/var/www/ on /usr/local/apache/www type nfs (rw,vers=4,addr=172.16.251.87,clientaddr=172.16.251.85)

# 查看以挂载;第二台 httpd 也需要同样挂载;挂载完成后记得写入到 /etc/fstab 中

                                                                                       

[WEB85]#vim /etc/fstab

增加下面这行内容

172.16.251.87:/var/www  /usr/local/apache/www  nfs    defaults,_netdev        0 0

                                                                                                                                                                                                                                   

挂载完成后;是无法写入数据的

[WEB85]#cd /usr/local/apache/www/

[WEB85]#mkdir aa

mkdir: cannot create directory `aa’: Permission denied

[WEB85]#

                                                                           

需要到 php 服务器配置 NFS 的权限;为了安全;新建立一个账户;httpd 服务器也建立同样的账户

[PHP87]#useradd -u 600 web

[PHP87]#id web

uid=600(web) gid=600(web) groups=600(web)

[PHP87]#setfacl -R -m u:600:rwx /var/www/  - R 是因为其下面有其他的目录

[PHP87]#getfacl /var/www/

getfacl: Removing leading ‘/’ from absolute path names

# file: var/www/

# owner: root

# group: root

user::rwx

user:web:rwx

group::r-x

mask::rwx

other::r-x

                                                                                                                                                                                                                                                       

#httpd 两台服务器建立相应的账户

[WEB85]#useradd -u 600 web

[WEB85]#su – web

[web@localhost ~]$ cd /usr/local/apache/www/

[web@localhost www]$ mkdir aaa

[web@localhost www]$ ll

total 52

drwxrwxr-x  2 nobody nobody  4096 Mar 26 16:09 aaa

# 测试创建成功

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