NFS相关介绍

一、NFS简介

1. NFS(Network File System):NFS是一个文件共享协议, 也是是在类Unix系统中在内核中实现的文件系统。

2. 起源:最早是由SUN公司研发,非常古老,只是实现文件共享,安全控制方面比较简陋。 版本有, NFSv1, NFSv2,NFSv3,NFSv4. v4版开始支持kerberos 认证。

3. RPC(Remote Procedure Call):NFS协议是基于PRC(远程过程调用)实现的。

基本过程如下图,客户端某程序发起过程请求 >rpc客户端接过请求 >通过套接字通信交给服务器端 >服务器端接过请求交给某程序执行 >执行后把结果或者状态返回客户端

RPC守护进程rpcbind监听: 111/tcp 和 111/udp

RPC远程调用进程rpc.mount 监听: 2049/tcp 和 2049/udp


1437440473124205.png

4. 关于NFS的安全设置,原生的NFS服务只能基于IP认证。 NFSv4可以基于以下两种认证方式认证

NIS: Network Information Service

Kerberos 5. 安装配置 : nfs-utils包, NFS为内核实现,所以只需要工具包

6. 三个关键进程:

mountd: 挂载搜索进程,负责客户端源认证的进程

nfsd:文件读写

idmapd:id映射进程

7. 配置文件/etc/exports:

配置格式:

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

/var/www/htdocs/Discuz/upload 192.168.98.128/24(rw,async,no_root_squash) 192.168.98.129/24rw,async,no_root_squash)

文件导出属性:

rw async sync

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

no_root_squash: 不压缩root用户;

all_squash: 压缩所有用户;

anonuid, anongid: 指定匿名用户映射为的UID和GID;

相关命令

showmount

-e: 在nfs客户端执行,探查某主机所导出的nfs文件系统;使用格式“showmount -e Server_IP”;

-d: 在nfs服务器端执行,显示哪个导出的文件系统已经被至少一个客户挂载使用了;

-a: 在nfs服务器端显示所有的挂载会话;

exportfs:用户不重启服务重新导出目录

-a: 操作所有文件系统

-ra: 重新导出所有文件系统

-ua: 取消导入的所有文件系统

v

: 显示详细信息

由于nfs辅助进程mountd默认监听随机端口,有可能会占用一些重要端口,例如80,所以有时需要锁定端口

在/etc/sysconfig/nfs 中实现

Port rpc.mountd should listen on.

MOUNTD_PORT=892

NFS实践

双web服务器 +php-fpm + nfs + mysql 搭建discuz论坛,实现双web服务器共享后端数据。

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Laravel\Socialite\Contracts\Factory as Socialite;
use Illuminate\Contracts\Auth\Guard as Auth;
class SocialLoginController extends Controller
{
/**
* @var Socialite
*/
protected $socialite;
/**
* @var User
*/
protected $auth;
/**
* @param Socialite $socialite
* @param User $user
* @param Auth $auth
*/
protected $request;
function __construct(Socialite $socialite, Auth $auth, Request $request)
{
$this->socialite = $socialite;
$this->auth = $auth;
$this->request = $request;
}
/**
* @param $provider
* @param Request $request
* @return \Illuminate\Http\RedirectResponse|\Symfony\Component\HttpFoundation\RedirectResponse
*/
public function login($provider)
{
return $this->execute($provider, $this->request->has('code'));
}
/**
* @param $provider
* @param $hasCode
* @return \Illuminate\Http\RedirectResponse|\Symfony\Component\HttpFoundation\RedirectResponse
*/
public function execute($provider, $hasCode)
{
if( ! $hasCode)
{return $this->getAuthorization($provider);
}
$user = $this->socialUser($provider);
/***************************************************************
/*
/* dd($user->token); // will return something like this : "somerandomstring1232323123123"
/* 
/***************************************************************/ 
}
/**
* @param $provider
* @return \Symfony\Component\HttpFoundation\RedirectResponse
*/
public function getAuthorization($provider)
{
return $this->socialite->driver($provider)->redirect();
}
/**
* @param $provider
* @return \Laravel\Socialite\Contracts\User
*/
public function socialUser($provider)
{
return $this->socialite->driver($provider)->user();
}
}

as you can see $user->token returns string which contains access token, but in order to make it work we need the token in this format.

<?php
array:5 [%

NFS实现(双httpd + php-fpm + nfs + mysql 搭建discuz论坛)的方法的更多相关文章

  1. centos配置nfs服务详细步骤(centos开启nfs服务)

    一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操 ...

  2. centos MySQL主从配置 ntsysv chkconfig setup命令 配置MySQL 主从 子shell MySQL备份 kill命令 pid文件 discuz!论坛数据库读写分离 双主搭建 mysql.history 第二十九节课

    centos  MySQL主从配置 ntsysv   chkconfig  setup命令  配置MySQL 主从 子shell  MySQL备份  kill命令  pid文件  discuz!论坛数 ...

  3. 在Centos下安装httpd、php、Mysql并配置(转载)

    转自:http://club.jledu.gov.cn/?action-viewspace-itemid-299020 1.安装Apahce, PHP, Mysql, 以及php连接mysql库组件. ...

  4. nfs下的exportfs命令和nfs客户端重新挂载

    工作中,如果使用了nfs服务器,会遇到修改nfs服务器配置的情况,如果想重新让客户端加载上修改后的配置,但是又不能重启rpcbind服务,我们需要使用export命令了 exportfs命令 常用选项 ...

  5. Linux centosVMware NFS介绍、NFS服务端安装配置、NFS配置选项

    一.NFS介绍 NFS是Network File System的缩写 NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版 ...

  6. Windows下mysql忘记密码的解决方法

    Windows下mysql忘记密码的解决方法 mysql5.0 http://www.jb51.net/article/21984.htm方法一: 1.在DOS窗口下输入 net stop mysql ...

  7. (转)mysql账号权限密码设置方法

    原文:http://www.greensoftcode.net/techntxt/2013410134247568042483 mysql账号权限密码设置方法 我的mysql安装在c:\mysql 一 ...

  8. centos lamp/lnmp阶段复习 以后搬迁discuz论坛不需要重新安装,只需修改配置文件即可 安装wordpress 安装phpmyadmin 定时备份mysql两种方法 第二十五节课

    centos  lamp/lnmp阶段复习 以后搬迁discuz论坛不需要重新安装,只需修改配置文件即可 安装wordpress  安装phpmyadmin  定时备份mysql两种方法  第二十五节 ...

  9. Windows下Apache+PHP+MySQL搭建web服务器

    Apache+PHP+MySQL搭建服务器 工欲善其事必先利其器. 最近由于电脑出了问题不得不重新安装需要的文件,代码什么的都没了,以前也没怎么写过东西这回就先试试手,写的不是太好,希望大家不要介意哈 ...

随机推荐

  1. scanf读入有空格字符串

    当不支持gets时,getline又比较慢,可以使用scarf("%[^\n]s", str);来读入以换行表示读完的字符串,其中[^char]表示以char为结束.

  2. 在mac下怎么配置web环境(php)

    1, 安装PHP+apach+mysql(xampp) 2, 在目录下建一个新文件夹   : 我是在Users/个人目录/workspace 3, 打开/Applications/XAMPP/xamp ...

  3. CentOS 6.5 源码编译搭建LAMP(两台独立主机实现)

    搭建前准备: 1.两台独立主机 httpd:192.168.1.105 php-fpm:192.168.1.105 mariadb:192.168.1.103 2.相关软件的源码包 httpd:htt ...

  4. Inoic 滚动条问题

    1.看图说话 2.没有超过一个页,怎样去掉图中的滚动条? 3修改后预览效果

  5. vim中利用swp文件进行恢复

    经常电脑因为没电或者强行关闭vim,会导致原文件没有保存, 这种情况下vim会自动保存一个.swp文件,需要恢复时, 使用vim -r filename 期中-r意思为recovery 恢复之后最好删 ...

  6. volatile和指令重排序

    volatile 的作用 1 精致指令重排序 2 多线程访问同一个变量的时候,每次都是取最新的,而不会使用当前cpu缓存的那一份.

  7. grpc之protobuf常用语法速学

    1,语法速学(1):返回商品”数组”.repeated修饰符 Repeated:是一个修饰符,返回字段可以重复任意多次(包括0次) 可以认为就是一个数组(切片) 服务端: 创建protobuf文件 s ...

  8. MyBatis配置文件(五)--objectFactory对象工厂

    我们在使用MyBatis执行查询语句的时候,通常都会有一个返回类型,这个是在mapper文件中给sql增加一个resultType(或resultMap)属性进行控制.resultType和resul ...

  9. Maven中央仓库地址大全,Maven中央仓库配置示例

    < Maven 中央仓库地址大全 > 在上一篇文章中完成了 < Maven镜像地址大全 >,后来又花了时间又去收集并整理了关于 maven 远程仓库地址,并整理于此,关于 Ma ...

  10. YUM配置文件

    创建容器,位置在/etc/yum.repos.d,扩展名必须是.repo #cd  /etc/yum.repos.d #vim yum.repo         新建一个仓库文件,名字可以随便定义,在 ...