zfxcms ^回到顶部

您的当前位置:首页 > 架构 > 架构思想 > 高并发解决方案-建立独立的图片服务器

高并发解决方案-建立独立的图片服务器

所属分类: 架构思想   2020-03-19 17:38:33  编辑:admin  浏览次数 596 次

解决方案:

分担web服务器的io负载,将耗费资源的图片服务分离出来,提高服务器的性能和稳定,能够专门儿对图片服务器。进行优化为图片服务器设置有针对性的缓存方案减少带宽,提高访问速度,提高网站的可扩展性,通过增加图片服务器,提高图片的吞吐能力同意域名下浏览器的并发连接数有限制,突破浏览器的连接数的限制,由于哭key的原因兑换存不利,大部分web cache都只缓存不能带哭key的请求,导致每次图片请求都不能命中cache

独立后也会遇到一些问题:

如何进行图片的上传和同步(待补充)

1.NFS在企业中的应用场景

企业集群架构中,NFS网络文件系统一般用来存储共享的视频、图片、附件等静态资源,一般把网站用户上传的文件都放到NFS共享里,例如图片、附j件、头像,然后前端所有的节点访问这些静态资源时都会读取NFS存储上的资源。NFS是当前互联网系统架构中最常用的数据存储服务之一,特别是中小型网站公司应用频率更高。

image.png

NFS配置

一、NFS服务端部署环境准备

·         NFS服务器端:10.69.112.78

·         NFS客户端:10.69.112.133

·         NFS客户端:10.69.112.134

二、NFS server端设置(先安装rpcbind再安装nfs-utils,启动过程也是)

·         rpm -qa nfs-utils rpcbind 

·         yum install nfs-utils rpcbind -y

·         /etc/init.d/rpcbind start

·         netstat -tunlp | grep rpcbind

·         chkconfig --list rpcbind

·         rpcinfo -p localhost

·         /etc/init.d/nfs start

·         chkconfig --list nfs

·         chkconfig nfs on

rpcbind和nfs-utils都是开机自启动,如何保证rpcbind先启动?

对比/less/etc/init.d/rpcbind和/less/etc/init.d/nfs中# chkconfig: 2345 13 87这项,也可以不用chkconfig,启动命令写入/etc/rc.local中。

三、NFS服务端配置

·         vim /etc/exports

  /data  10.69.112.*(rw,sync,all_squash)

·         /etc/init.d/nfs restart

·         showmount -e 127.0.0.1

·         mount -t nfs 10.69.112.78:/data /mnt#挂载测试

·         cat /var/lib/nfs/etab #服务器端nfs所有参数信息

四、NFS客户端配置

·         /etc/init.d/rpc start

·         mount -t nfs 10.69.112.78:/data /mnt

·         此时能在10.69.112.133上直接访问10.69.112.78上的/data下的内容,但是不能创建

·         需要在78上chown -R nfsnobody /data

·         此时,在133上的/mnt目录下就能直接touch文件了

·         挂载命令放到rc.local中,开机挂载,不要放在fstab中,文件系统比网卡先挂载。

NFS配置文件权限参数

·         rw:读写

·         ro:只读

·         sync:写入硬盘,不会丢数据

·         async:写入内存,异步,可能会丢数据

·         all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);

·         no_all_squash:与all_squash取反(默认设置);

·         root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);

·         no_root_squash:与rootsquash取反;

·         anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);

·         anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);

 

使得NFS Client端可写的服务端配置条件

当多个NFS客户端以NFS方式写入修改服务器端的文件系统时,需要具有以下权限:

a)NFS服务器/etc/exports设置需要开放可写入的权限,即服务端的共享权限

b)NFS服务器实际要分享的NFS目录权限具有可写入w的权限,即服务端本地目录的安全权限

c)每台机器都对应存在和nfs默认配置UID的相同UID65534的nfsnobody用户

NFS服务重要文件说明

/etc/exports NFS服务主配置文件

/usr/sbin/exportfs NFS服务管理命令 exportfs -rv 加载配置生效,等价重启/etc/init.d/nfs restart

showmount 在服务端和客户端查看挂载情况

/var/lib/nfs/etab NFS配置文件的完整参数设定的文件

企业生产环境nfs性能优化挂载

mount -t nfs -o nosuid,noexec,nodev,noatime,nodiratime,intr,rsize=131072,wsize=131072 10.69.112.78:/data /mnt

NFS服务内核优化

1)/proc/sys/net/core/rmem_default

改文件指定接收套接字缓冲区大小的缺省值,缺省设置:124928

2)/proc/sys/net/core/rmem_max

该文件指定了接收套接字缓冲区大小的最大值,缺省设置124928

3)/proc/sys/net/core/wmem_default

改文件指定了发送套接字缓冲区大小的缺省值,缺省设置:124928

4)/proc/sys/net/core/wmem_max

改文件指定了发送套接字缓冲区大小的最大值,缺省设置:124928

cat >>/etc/sysctl.conf <<EOF

net.core.wmem_default = 8388608

net.core.rmem_default = 8388608

net.core.rmem_max = 16777216

net.core.wmem_max = 16777216

EOF

sysctl -p

生产场景NFS共享存储优化小结

1、硬盘:ssa/ssd硬盘,raid0/raid10,网卡吞吐量大,千兆

2、NFS服务器端配置:/data

10.69.112.78/24(rw,sync,all_squash)

3、NFS客户端挂载

4、内核参数

5、关闭服务器时一定要记得关闭nfs,否则卸载时提示:umount:/mnt:device is busy

需要退出挂载目录再进行卸载,或者是NFS Server宕机了,需要强制卸载: umount -lf /mnt

 

练习:三台服务器(server:10.69.112.78   agent:10.69.112.133 10.69.112.134)

(1)在NFS服务器A上共享/data/w_shared及/data/r_shared两个文件目录,允许从NFS客户端B,C上分别挂载共享目录后可实现从B,C上只读/data/r_shared,可写/data/w_shared。

(2)NFS客户端B上得挂载点为/data/b_w(写),/data/b_r(读)

(3)从NFS客户端B上的NFS可写挂载点目录创建任意文件,从C上可以删除这个创建的文件

服务端

·         yum install nfs-utils rpcbind -y

·         /etc/init.d/rpcbind start

·         /etc/init.d/ntp start

·         mkdir -p /data/w_shared /data/r_shared

·         chown -R nfsnobody:nfsnobody /data/(若不修改,客户端不能创建删除文件)

·         vim /etc/exports

image.png                                          

客户端

·         yum install nfs-utils rpcbind

·         /etc/init.d/rpcbind start

·         /etc/init.d/ntp start

·         mount -t nfs 10.69.112.78:/data/r_shared /data/b_r

·         mount -t nfs 10.69.112.78:/data/w_shared /data/b_w

使用linux rescue(救援模式)修复/etc/fstab(改错配置,然后重启系统)

root密码忘记,重新获取root密码

 /export    172.28.149.99(rw,sync,all_squash,anonuid=600,anongid=600)

2.ftp共享

在系统中任何的文件夹都可以借助于ftp服务成为共享文件夹,建立文件夹只需要在磁盘位置右键选择”新建文件夹“即可,ftp共享的设置方法可以参考如下操作:

1、在win7上使用ftp服务,需要先安装iis服务,打开 "控制面板",选择"程序" -> "打开或关闭Windows资源",在弹出的窗体里找到 “Internet信息服务”,展开后选择“Ftp服务器",然后点击"确定",此时Windows开始更新功能资源列表。

2、然后,自己在IIS管理器中添加FTP站点

在弹出的窗口,选择ftp共享目录即可。

3.七牛云共享


服务器文章检索

服务器文章目录