网站首页 > 服务器> 文章内容

Linux 构建文件共享服务器

※发布时间:2019-11-15 23:55:28   ※发布作者:habao   ※出自何处: 

  胎梦大全或许您没有立即想到企业文件分享的问题,但学习更多提供的服务方法也是一个不错的选择。这里讨论的文件分享,指的是拥有大量必须被访问的文档或其他文件,且安全可靠地文件。

  设想一个涉及几十个开发人员的项目,这些开发人员被分成若干个小组,并分布在3个或4个物理上。除了可能存在于私有资源库中的代码,每个小组还会制作很多设计文档、演示视频、项目融资提案及视频聊天记录,更不用说PDF格式的合同和工作声明了。为了让这种系统运转,需要在并不安全的网络中确保系统能被安全地访问,但必须小心地控制访问权限,以便只让合适的人看到合适的资源。

  我们将建立一个Nextcloud,用来阐述如何使用一些重要的管理技能完成这项工作。您将看到Ubuntu的新snapd包管理器,学习如何扩展Apache配置的,理解应用程序如何管理它们的配置,以及理解如何跨越多个设备存储数据。

  Nextcloud是一个开源软件套件,它用存储空间保存、编辑和使用各种类型的文档,包括音频/视频调用托管等服务。Nextcloud还提供了客户端应用程序,允许用户在、、MacOS和智能手机平台上使用资源。

  使用Nextcloud,可以构建Dropbox或Google Drive私有版本,根据设置的条款,不需要担心可用性或服务/隐私协议的意外变化。

  对于特别的数据,可以把所有东西都存档在内部,还可以构建一个Nextcloud服务器作为前端,以良好地控制用户与交互,并将数据本身自动、安全地保存到更便宜可靠的第三方服务中。如果需要从Dropbox中移出数据,可以在用户完全察觉不到变化的情况下移出数据。

  snaps是一个完全完整的软件包。需要的只是一个兼容snap的发行版本以及一个包的名称。如果在一个终端中运行命令:

  它将会自动安装完整的Blender 3D创作套件,以及所有的运行依赖和它需要的扩展。更新和补丁也将在后台处理。

  Blender只是一个例子而已。作为一个高度图形化的程序,只有在桌面版的上安装snap是有意义的;在上安装不会有良好的效果。

  Ubuntu Core是一个特殊的轻量级发行版本,主要是为物联网(IoT)设备建造的,如智能家电和车联网,以及码头集装箱群。设计时,Core只用snap进行包管理。

  snap系统不仅是一个包管理器。如图1中看到的,snap本身是的沙箱,对其他系统资源的访问是有限的。

  如图1所示,与其他snap通信是通过一个仅在合适处连接的接口实现的。snap可以访问文件系统的特殊(在/var/snap/snapname/)并写入数据。如果机器上还没有安装snap,需要snap包:

  应用程序开发人员已经构建了几百个snap,它们被托管在不同的源,如Ubuntu Store()。可以使用snap find在命令行中寻找可用的snap,还可以通过关键字描述正在寻找的内容。以下是一些包含关键字sever的snap搜索结果:

  snap安装完成后,使用一个浏览器浏览虚拟机的Web根目录(使用虚拟机的IP地址,可以使用ip addr查询)。页面加载完成后,将会被要求创建一个管理员账户,然后退出整个过程。

  将snap集成到LXC中的速度似乎比预期要慢一些,并且Ubuntu 16.10以前的版本还不兼容LXC容器。因为在工作站上运行的是Ubuntu 16.04,所以启动一个运行Ubuntu17.04 ISO映像的VirtualBox虚拟机是最快且最简单的解决方案。

  如果安装一个Nextcloud snap如此简单明了,为什么还用手动的方式呢?这里有几个原因。其一是snap可能过于简单,不允许在设计和配置方面有较大的灵活性。另一个原因是,有的snap版本还不能添加和完全管理应用程序。手动安装应用软件意味着更深入地了解Linux系统内部工作原理,并且识别和解决问题。

  图2展示了Nextcloud的系统需求网页。如果计划部署一个简单的、为几十个用户使用的轻量级服务器,那么将发现Nextcloud非常好用,不需要任何不能用现成容器处理的东西。

  所有老旧的低配硬件在我们的技术测试中都运行良好,但尽量不要在旧电脑上运行一个LXC容器来服务成千上万用户并处理TB级的数据。

  如果计划一个企业级部署,Nextcloud提供了一个好用的多级部署指南以提供全强度平台支持。举个例子,在这里Nextcloud推荐一个至多150人的工作组,访问至多10 TB数据:

  ●使用nodatacow进行Nextcloud数据分区的Btrfs文件系统,可以零停机备份。

  Btrfs是一个文件系统类型,尽管比ext4应用更少,但它的设计目的是在大规模数据下提供卓越的性能和数据可靠性。

  下一步应该足够简单。启动一个全新的容器或虚拟机,如果没有其他更多原因的话这将是一个非常好的实践。以下是服务器可能需要的软件包,它们可以通过单个命令安装。加入了wget和nano,以防它们还没有安装:

  如果对使用或使用MariaDB不是特别挑剔,而且是在Ubuntu上,那么可以轻松地为自己省下大量的输入量,然后再安装LAMP综合功能包。再次提醒,在包名的末尾不要忘记脱字符(^):

  安装好LAMP软件,搭建并运行数据库之后,已经准备好告诉Apache想让它与应用程序如何协同工作。

  为了确保Apache能够与Nextcloud通信,不得不做一些简单的调整。首先,需要通过a2enmod工具启用几个(一对)Apache模块,rewrite模块用于在客户端和端实时重写URL。header模块则起到与报头类似的功能:

  如果不打算将该服务器用于其他目的,那么将Nextcloud应用程序文件放在Apache文档的根目录就行。因为/etc/apache2/sites-available/目录下的f文件中的DocumentRoot已经指向/var/,这里已经不需要再做什么了。但是将Nextcloud的数据文件存放在默认的文档根目录下存在潜在的安全风险。可以将Nextcloud放入文件系统的其他地方。

  有两种方法可以告诉Apache如何查找不在文档根目录下的站点文件。Ubuntu方法涉及在现有的000-deult.conf文件中增加一个包含所有必要信息的新部分。似乎更多的人更喜欢在/etc/apache2/sites-available/目录下为每个新服务都新增一个.conf文件的方式。两种方法都有效果,假设将应用程序放在了/var/www/目录下而不是文档根目录下,那么图3是单独文件应该有的样子。

  使用Ubuntu方法的一个类似指令涉及在000-deult.conf文件中添加一个部分。如图4所示。

  如在图5中看到的,当Apache读取该配置文件时,假设域名是它将所有发送到example.com/nextcloud地址的流量重定向到/var/www/中的应用程序文件。IP地址也可以起作用。

  为什么不告诉Apache第一次就读取/etc/apache2/sites-available/以减少中间环节呢?因为把所有的内容挂载到符号链接上能够轻松方便地快速禁用某个站点,然后在完成一轮编辑后,再重新启动它们。与不得不删除或重写源文件相比,只需要处理那些易于管理的链接即可。

  符号链接(Symbolic link)是代表文件系统中其他的文件或目录的对象。它们允许使用者在一个执行或浏览资源,即使这个资源本身在其他。

  可以在Nextcloud安装网页()上下载最新版本的Nextcloud软件包。如果正在向一个容器或虚拟机安装,或者在没有安装桌面GUI的服务器上安装,最简单的方法是获得软件包的下载链接URL并从命令行中下载软件包。

  单击Details and Download options按钮时不要忘记单击显示的MD5或SHA256散列链接。然后确认这些值与下载存档文件中生成的散列相同。

  下载的存档文件具有.tar.bz2扩展名而不是.tar.gz。.gz存档文件与.bz2存档文件是使用不同的压缩算法创建的。gzip存档文件压缩时需要的时间似乎更少,但是生成的存档文件比BZ2大。

  Apache将需要访问Nextcloud目录下所有文件的完整权限以完成它的工作。可以让root用户拥有它们,但是这意味着不得不给访客用户root权限以访问这些文件。给互联网上的每个人这种访问文件的权限会带来一些安全隐患。

  使用一个特殊的称为www-data的系统用户。下一条指令将使用chown将所有这些用户和组的文件所有权交给Web服务器用户www-data。使用大写字母-R(像和cp一起使用的小写字母-r一样)将这条命令递归地应用在层次结构目录的所有文件和目录下:

  在Apache没有的时候,它并不知道我们在做什么。最好通过重新启动这项服务来使它保持良好的运转状态:

  如果重启没有成功,那么请记录所有错误提示,看看什么是可以处理的。也可以使用tail命令显示最近的10个日志条目,从而更深入地研究日志。例如,可能有某一行出现nextcloud.conf文件:

  如果一切顺利,那么请将浏览器定向到容器的IP地址,在其后添加一个nextcloud。将被带入一个页面,要求创建一个新的管理账户并为MariaDB提供有效的登录凭证。除非为此目的建立了一个不同的账户,否则将使用根目录和前面给出过的:

  将资源和非根用户关联在一起具有安全和逻辑上的优势。当多个应用程序使用单个中的资源时,推荐通过创建多个分离的账户保持应用程序的性。

  一旦信息被接收,就会展示Nextcloud的客户端应用,然后将它放进图7中的管理控制台。在这里,可以上传、浏览并分享一些文档和文件。

  图7 主Nextcloud控制台,有完整示例的文件夹和文件。可以像使用操作系统文件管理一样使用对象

  作为站点管理员,也可以创建组和用户,分配权限和配额,以及管理站点功能。现在我们来看看如何管理Nextcloud。

  随着Nextcloud站点复杂性的增长以及人们需求的变化(例如,使用脚本管理不断增长的资源可能更加高效),有时会需要在命令行级别使用管理资源。最好知道东西在哪里,长什么样。

  与许多应用程序使用/etc/的方法不同,Nextcloud将它的主要配置文件(名为config.php)放在/var/www/nextcloud/config/目录下。文件中包含身份验证信息和信息,以及关键连接细节。

  与所有优秀的应用程序一样,Nextcloud有一个功能齐全的命令行叫作occ command。要使用它,需要准备一个极度详细的字符串作为使用的www-data用户运行命令。键入sudo-u www-data php occ-h会显示基本的语法帮助,而list会打印出所有的可用命令:

  现在,让我们忽略这些命令行工具,回到浏览器控制台。就像在图8中看到的,点击页面右上角的齿轮图标会显示跳转至User页的链接(管理用户和组的地方),Apps页的链接(有可以启用的可用程序菜单),以及Admin页的链接(管理安全设置、服务及应用的地方)。

  如果点击Admin页面,可能会看到一些安全和设置。如图9所示,站点没有设置为使用加密的协议进行,这一事实是一个值得关注的问题。

  协议所做的就是在服务器(就像正在运行Nextcloud的这台机器)和访客电脑上的浏览器之间传输数据时进行加密。这非常重要,因为不希望在和用户之间传输的数据给任何网络上的任何人。当数据没有被传送时,也应该关注它。

  对服务器上的文件进行加密将任何以某种方式获得存储设备访问权限的人增加文件或者读取文件内容。这些人可能是谁?假设有人入侵网络,或者有人带走了服务器设备。如果文件是加密的,它们将只能为窃贼提供很少或没有价值的东西。

  要启用加密,请点击左侧面板中的Encryption链接并选择Enable Server-side Encryption复选框。如图10所示,将看到一个列出了一些需要考虑的后果的列表。读完后,点击Enable Encryption按钮。

  图10 在Nextcloud中启用服务器端加密是一个简单的、一键式的过程,但是应该意识到一些后果返回搜狐,查看更多

  

相关阅读
重庆学习网zslpsh,0755深圳房产人才招聘网,拾年网90后,anedc股票,最新电影下载淘娱淘乐,重庆中学生网高考,重庆中学生网高考,学习重庆方言网,重庆中学生学习方法,重庆俗语网,中学生网zslpsh,0755深圳交友网,重庆初中生,贵州重庆方言网,025新闻网,西南重庆方言歌曲,025南京交友网,重庆农家乐美女,观赏蟹种类zadull,云南重庆方言网,重庆中学学习网,028成都交友网,推广taoyutaol,西南四川方言网,观赏龟论坛zadull,四川重庆方言网,022天津交友网,重庆中学生网家长,鹦鹉鱼zadull,重庆俗语,电影淘娱淘乐,taoyutaole娱乐,华夏视讯网,0755深圳旅游招聘,昆明重庆方言网,淘娱淘乐影视,www.00game.net,观赏鱼zadul,重庆高考zslpsh,重庆中学生网高考,027房产招聘网,坝坝舞wagcw,西南重庆方言网,贵州重庆方言网,重庆言子儿网,热带鱼zadull,重庆高考zslpsh,0755深圳旅游招聘网,淘娱淘乐影视网,0571.361.cm,重庆方言学习网,028成都新闻,异形观赏鱼种类,影视网淘娱淘乐,最新电影下载淘娱淘乐,0773桂林论坛,拾年网80后动画片,观赏蟹论坛zadull,观赏龟繁殖教程,重庆一中zslpsh,重庆俗语网,广场舞wagcw,观赏虾的种类zadull,观赏鱼观赏虾观赏龟,西南方言网,观赏鱼之家论坛zadull,战争前线辅助00game,西南重庆方言小说,重庆中小学zslpsh,推广taoyutaol,战争前线论坛00game,0871交友网,025南京新闻网,重庆言子儿网站,娱乐taoyutaole,022天津交友网,025新闻网,重庆中学生网学习,022天津交友网,重庆方言歌网,www.120.cm健康网,anedc股票,重庆初中生