共享存储和http基础
1 网络文件系统nfs--在本地挂载远程的存储空间,让本地用户和程序直接访问本地目录从而实现数据和存储空间的共享
工作原理:
前提-RPC服务需要先于NFS启动,NFS启动后,就会产生一些随机端口,然后向RPC服务去注册这些端口;
请求建立连接-客户端首先通过RPC协议到服务器端的RPC上要功能对应的端口号,然后客户端将请求发送给服务器所对应的端口号,并接收服务器返回的响应数据,此后的数据传输便不再经过RPC,只在客户端和服务端之间进行数据传输。

环境部署:在rocky中安装,nfs-utils包含了客户端工具和服务端工具--yum install rpcbind nfs-utils
在ubuntu中安装服务端包--apt install nfs-kernel-server[会自动安装nfs-common]
在ubuntu中安装客户端包--apt install nfs-common
常见命令:showmount -e 10.0.0.13显示指定NFS服务器上的配置列表
mount nfs_address:/nfs_dir /local_dir[mount 源文件 挂载点]--mount 10.0.0.13:/data/dira /mnt
exportfs用于管理本机NFS文件系统,默认配置文件是 /etc/exports[配置格式:共享目录 访问主机范围 (授权)--/data/dira 10.0.0.16(rw) 10.0.0.12]
修改配置文件后,加载配置--exportfs -r
查看加载配置的效果--exportfs -v
暂时卸载操作--exportfs -au [重启服务systemctl restart nfs-server.service将重新加载配置文件]
文件系统权限问题:
共享目录在服务器上的文件系统权限可能不允许当前用户创建文件。如果共享目录属于root用户,并且没有为"其他用户"设置适当的写权限,那么即使NFS权限设置为rw,非root用户也可能无法在该目录中创建文件。此时可以通过修改共享目录的文件系统权限来解决此问题。具体来说,可以使用chown命令将共享目录的所有权更改为适当的用户或组,或者使用chmod命令调整目录的权限chmod o+w 源文件[在服务端处]
2 数据同步
实时数据同步方案:inotify+rsync利用内核中的inotify监控指定目录,当目录中的文件或数据发生变化时,立即调用rsync服务将数据推送到远程主机上[少量文件实时同步]
sersync+rsync基于Inotify的增强工具,支持多线程、事件过滤和失败重试[高并发大规模同步]
inotify: 事件多、信息输出格式杂乱,需要优化
rsync:高效的文件同步工具,在服务端模式下需配置用户认证和服务管理 rsync 协议的远程访问地址---rsync://root@10.0.0.13/dir
EPEL提供数千个额外的RPM包(如 htop、nginx、python3-pip),解决官方仓库软件不全的问题
例:安装 nginx(官方仓库无此包):
yum install epel-release
yum install nginx
3 http协议基础
一条主线: 浏览器输入域名、dns解析(域名—>IP)、tcp/ip三次握手、http请求与响应、tcp/ip四次挥手、浏览器渲染
http机制:
请求头:GET / http/1.1
消息处理-Web服务器软件(如Nginx、Apache、Tomcat)负责接收、解析并返回响应
响应头: http/1.1 200 OK
http是无状态的,解决无状态问题的方法:
cookie(会员卡)服务器通过Set-Cookie下发cookie,储存在客户端,客户端每次请求自动携带cookie
session(会员号)服务端存储用户数据,服务器把Session ID放Cookie发给客户端,客户端下次请求再把Cookie发回,服务器靠Cookie里的Session ID找对应Session对象来管状态
jwt(令牌)数据直接存储在客户端,可跨服务(支持同一服务器内的不同服务间使用,也支持不同服务器上的服务间使用),但无法主动失效
4 apache基础
默认端口:80
配置结构:
全局配置:定义服务器基础行为(端口、用户、日志)软件运行相关---配置文件:rocky /etc/httpd/conf/httpd.conf ; ubuntu /etc/apache2/apache2.conf
虚拟主机配置:通过<VirtualHost>实现多站点托管---配置文件:rocky /etc/httpd/conf.d/vhost.conf ; ubuntu /etc/apache2/sites-available/example.conf
模块配置:按需加载功能(如HTTPS、重定向)
apache安装:
[root@rocky9 ~]# yum install httpd -y
root@ubuntu24:~# apt install apache2 -y
