YAZONG 我的开源

搭建nfs挂载磁盘共享资源(nginx访问资源)

  , , ,
0 评论0 浏览

服务端nginx,10.13.10.13

nginx部分


 

#nginx配置

server {

	  listen 80;

	  server_name  resource.xx;

	  rewrite ^(.*) https://${server_name}$1 permanent;

}

server {

 

		listen       443;

		#listen       80;

		server_name  resource.xx;

		ssl on;

		root html;

		index index.html index.htm;

		ssl_certificate /data/smartSaas/software/nginx/conf/sslkey/xx/4871619__xx.pem;

		ssl_certificate_key /data/smartSaas/software/nginx/conf/sslkey/xx/4871619__xx.key;

		ssl_session_timeout 5m;

		ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;

		ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

		ssl_prefer_server_ciphers on;

 

		charset utf-8;

		client_max_body_size 400m;

 

		location /local/download/ {

				alias /data/smartSaas/service/application/files/saas-local-static/;

				index index.html;

		}

 

 

		location / {

				root   /50x.html;

		}

		error_page  400 403 404 500 502 503 504  /404.html;

		location = /404.html {

						root   /50x.html;

		}

}

nfs部分


 

#安装nfs相关包

[root@ ~]# yum install nfs-utils rpcbind -y

 

#启动rpcbind服务

[root@ ~]# service rpcbind start

 

#启动 NFS 服务后 rpc 服务已经启用了对 NFS 的端口映射列表

#查看rpcinfo信息

[root@ ~]# rpcinfo -p localhost

   program vers proto   port  service

    100000    4   tcp    111  portmapper

    100000    3   tcp    111  portmapper

    100000    2   tcp    111  portmapper

    100000    4   udp    111  portmapper

    100000    3   udp    111  portmapper

    100000    2   udp    111  portmapper

    100024    1   udp  18733  status

    100005    1   udp  20048  mountd

    100005    1   tcp  20048  mountd

    100024    1   tcp  36878  status

    100005    2   udp  20048  mountd

    100005    2   tcp  20048  mountd

    100005    3   udp  20048  mountd

    100005    3   tcp  20048  mountd

    100003    3   tcp   2049  nfs

    100003    4   tcp   2049  nfs

    100227    3   tcp   2049  nfs_acl

    100003    3   udp   2049  nfs

    100003    4   udp   2049  nfs

    100227    3   udp   2049  nfs_acl

    100021    1   udp  15211  nlockmgr

    100021    3   udp  15211  nlockmgr

    100021    4   udp  15211  nlockmgr

    100021    1   tcp  25850  nlockmgr

    100021    3   tcp  25850  nlockmgr

    100021    4   tcp  25850  nlockmgr

 

#先查看rpcinfo再启动nfs

[root@ ~]# service nfs start



#检查rpcbind服务启动情况

[root@ ~]# netstat -lntup|grep 111

tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      12888/rpcbind   

tcp6       0      0 :::111                  :::*                    LISTEN      12888/rpcbind   

udp        0      0 0.0.0.0:111             0.0.0.0:*                           12888/rpcbind   

udp6       0      0 :::111                  :::*                                12888/rpcbind 

 

#检查nfs服务启动情况

[root@ ~]# netstat -lntup|grep 2049

tcp        0      0 0.0.0.0:2049            0.0.0.0:*               LISTEN      -   

tcp6       0      0 :::2049                 :::*                    LISTEN      -   

udp        0      0 0.0.0.0:2049            0.0.0.0:*                           -   

udp6       0      0 :::2049                 :::*                                -   

 

#创建目录并分配用户权限

[root@ ~]# mkdir -p /data/smartSaas/service/application/files/saas-local-static

[root@ ~]# chown -R microservices.microservices /data/smartSaas/service/application

[root@ ~]# ll -ld microservices.microservices /data/smartSaas/service/application/files/saas-local-static

#这里最好使用匿名用户:useradd nfsuser -M -s /sbin/nologin 

#id microservices。获取uid对应anonuid,gid对应anongid。
--务必保证服务端和客户端的用户是同一个,目录权限也是同一个,这里设置服务端的组ID即可,跟客户端的组ID无关。

[root@ ~]# id microservices

uid=1002(microservices) gid=1002(microservices) groups=1002(microservices)

#编辑exports,编辑的时候用红色警告可忽略

[root@ ~]# vim /etc/exports

/data/smartSaas/service/application/files/saas-local-static 10.13.10.0/24(rw,sync,anonuid=1002,anongid=1002,all_squash)

#配置挂载生效

[root@ ~]# exportfs -r

 

#查看本地挂载情况

[root@ ~]#  showmount -e 127.0.0.1

Export list for 127.0.0.1:

/data/smartSaas/service/application/files/saas-local-static 10.13.10.0/24

[root@ ~]#  cat /var/lib/nfs/etab

/data/smartSaas/service/application/files/saas-local-static     10.13.10.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=1002,anongid=1002,sec=sys,rw,secure,root_squash,all_squash)

 

#开机启动

[root@ ~]# systemctl enable rpcbind

[root@ ~]# systemctl enable nfs

 

#重启服务

[root@ ~]# service rpcbind restart

[root@ ~]# service nfs restart

 

#如果nginx没反应,可以执行重载命令。

[root@ ~]# nginx -t

[root@ ~]# nginx -s reload

 

--验证

客户端和服务端在目录中读写试试。并用nginx访问。

 

客户端,10.13.10.13为服务端地址


 

 

#安装nfs相关包

[root@ ~]# yum install nfs-utils rpcbind -y

 

#启动服务

#注意客户端不开启nfs

[root@ ~]# service rpcbind start

 

#创建目录并分配写读用户权限

[root@ ~]# mkdir -p /data/smartSaas/service/application/files/saas-local-static

#注意客户端不用分配此目录权限

[root@ ~]# ll -ld microservices.microservices /data/smartSaas/service/application/files/saas-local-static

 

#挂载远程磁盘

[root@ ~]# mount -t nfs 10.13.10.13:/data/smartSaas/service/application/files/saas-local-static  /data/smartSaas/service/application/files/saas-local-static

 

#检查远程服务挂载情况,有时不显示最终也能使用。

[root@ ~]#  showmount -e  10.13.10.13

Export list for 10.13.10.13:

/data/smartSaas/service/application/files/saas-local-static 10.13.10.0/24

 

#开机启动

[root@ ~]# systemctl enable rpcbind

 

#检查rc.local是否是可执行命令

[root@ ~]# ll /etc/rc.d/rc.local

[root@ ~]# chmod +x /etc/rc.d/rc.local

 

#设置挂载磁盘开机启动

[root@ ~]# vim /etc/rc.local

mount -t nfs 10.13.10.13:/data/smartSaas/service/application/files/saas-local-static  /data/smartSaas/service/application/files/saas-local-static

 

#验证挂载情况

[root@ ~]# df -h

 

#重启rpcbind服务使其生效

[root@ ~]# service rpcbind restart

 

--验证

客户端和服务端在目录中读写试试。并用nginx访问。

 

#取消挂载

[root@ ~]#  umount /data/smartSaas/service/application/files/saas-local-static

umount.nfs4: /data/smartSaas/service/application/files/saas-local-static: device is busy

[root@ ~]#  umount -lf /data/smartSaas/service/application/files/saas-local-static

[root@ saas-local-static]# pwd

/data/smartSaas/service/application/files/saas-local-static

[root@ saas-local-static]# ll

ls: cannot open directory .: Stale file handle

#先退出此目录就好了

其他说明

如果客户端 IP 不在该区间也想要挂载的话,可以设置 IP 区间更大或者设置为 * 即允许所有客户端挂载,例如:/home *(ro,sync,insecure,no_root_squash) 设置 /home 目录允许所有客户端只读挂载。

image.png


标题:搭建nfs挂载磁盘共享资源(nginx访问资源)
作者:yazong
地址:https://blog.llyweb.com/articles/2020/12/31/1609414661640.html