NFS实现(双httpd + php-fpm + nfs + mysql 搭建discuz论坛)的方法
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论坛)的方法的更多相关文章
- centos配置nfs服务详细步骤(centos开启nfs服务)
一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操 ...
- centos MySQL主从配置 ntsysv chkconfig setup命令 配置MySQL 主从 子shell MySQL备份 kill命令 pid文件 discuz!论坛数据库读写分离 双主搭建 mysql.history 第二十九节课
centos MySQL主从配置 ntsysv chkconfig setup命令 配置MySQL 主从 子shell MySQL备份 kill命令 pid文件 discuz!论坛数 ...
- 在Centos下安装httpd、php、Mysql并配置(转载)
转自:http://club.jledu.gov.cn/?action-viewspace-itemid-299020 1.安装Apahce, PHP, Mysql, 以及php连接mysql库组件. ...
- nfs下的exportfs命令和nfs客户端重新挂载
工作中,如果使用了nfs服务器,会遇到修改nfs服务器配置的情况,如果想重新让客户端加载上修改后的配置,但是又不能重启rpcbind服务,我们需要使用export命令了 exportfs命令 常用选项 ...
- Linux centosVMware NFS介绍、NFS服务端安装配置、NFS配置选项
一.NFS介绍 NFS是Network File System的缩写 NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版 ...
- Windows下mysql忘记密码的解决方法
Windows下mysql忘记密码的解决方法 mysql5.0 http://www.jb51.net/article/21984.htm方法一: 1.在DOS窗口下输入 net stop mysql ...
- (转)mysql账号权限密码设置方法
原文:http://www.greensoftcode.net/techntxt/2013410134247568042483 mysql账号权限密码设置方法 我的mysql安装在c:\mysql 一 ...
- centos lamp/lnmp阶段复习 以后搬迁discuz论坛不需要重新安装,只需修改配置文件即可 安装wordpress 安装phpmyadmin 定时备份mysql两种方法 第二十五节课
centos lamp/lnmp阶段复习 以后搬迁discuz论坛不需要重新安装,只需修改配置文件即可 安装wordpress 安装phpmyadmin 定时备份mysql两种方法 第二十五节 ...
- Windows下Apache+PHP+MySQL搭建web服务器
Apache+PHP+MySQL搭建服务器 工欲善其事必先利其器. 最近由于电脑出了问题不得不重新安装需要的文件,代码什么的都没了,以前也没怎么写过东西这回就先试试手,写的不是太好,希望大家不要介意哈 ...
随机推荐
- 查找父进程,进程的PEB 进程是否被调试 NtQueryInformationProcess
这个函数的功能很强大,可以用来查找进程的很多相关信息. 先看一下定义: NTSTATUS WINAPI NtQueryInformationProcess( _In_ HANDLE ProcessHa ...
- Nginx的几个重要模块
ngx_http_ssl_module 让Nginx可以支持HTTPS的模块,此模块下的大多数指令都应用在http,server上下文 ①ssl on | off; 是否开启ssl功能 ②ssl_ce ...
- Android SDK 开发指南
Android SDK 开发指南 视频详解 以下视频是对融云 Android SDK 开发使用的详细讲解,您可以在阅读文档时配合学习. 更多视频教程如下: CSDN 融云 Android SDK ...
- springboot核心技术(五)-----消息(rabbitmq)
消息 1. 大多应用中,可通过消息服务中间件来提升系统异步通信.扩展解耦能力 2. 消息服务中两个重要概念: 消息代理(message broker)和目的地(destination) 当消息发送者发 ...
- CentOS 6.5 服务器相关配置
vi /etc/sysconfig/network-scripts/ifcfg-eth0 #配置网卡 ONBOOT=YES #静态IPBOOTPROTO=static #启用地址协议 --static ...
- SpringBoot Jar应用Linux后台部署执行
nohup java -jar shop-h5.jar > log_h5.file 2>&1 &
- 你真的会用Action的模型绑定吗?
在QQ群或者一些程序的交流平台,经常会有人问:我怎么传一个数组在Action中接收.我传的数组为什么Action的model中接收不到.或者我在ajax的data中设置了一些数组,为什么后台还是接收不 ...
- MySQL 报错:Translating SQLException with SQL state '42000', error code '1064', message
MySQL报错详细日志 2019-09-12 16:42:29 [http-nio-80-exec-25] DEBUG [org.springframework.jdbc.support.SQLErr ...
- Leetcode147. Insertion Sort List对链表进行插入排序
对链表进行插入排序. 从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示). 每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中. 插入排序算法: 插入排序是 ...
- CodeForces - 627A
CodeForces - 627Ahttps://vjudge.net/problem/326413/origina+b == (a&b)<<1 +(a^b);然后是位运算,如果对 ...