• 手机游戏服务器该如何开发呢?

    春节以来新型肺炎蔓延全国,而为了防止病毒的传播,各地封路封城,国民基本都是宅在家里面足不出户,受此影响国内养殖、娱乐、零售、旅游、餐饮等众多行业都遭受到重创。 不过有一个行业却在这个假期迎来了爆发。 什么行业呢?既然只能在家,那么精神方面的娱乐就便不能少。于是在国内许多行业受疫情影响处于低迷之时,游戏行业却逆势实现了增长。毕竟无聊的时候,打游戏是不错的选择。 手游上线,手游服务器也要与时俱进,及时做好数据备份工作。那么,手机游戏服务器该如何开发呢? 下面MMCloud小编就随便聊聊手机手机游戏服务器开发需要的技术。 一.聊聊手游服务器开发有哪些东西要考虑。 1.开发语言的选择: 工欲善其事,必先利其器,选择一门适合的开发语法对后期开发有着事半功倍的作用。 业界主要的是c/c++ + Python/lua模式做手机游戏服务器。c/c++做网络通讯数据传输,python/lua做业务逻辑。这样既保持了网络传输的效率(c++),又提升开发效率(Python/lua),同时也支持热更新。 当然,也有其他服务器开发语言,erlang(没用过,页游公司用的多),c#(大棒子国喜欢用,神奇的民族),Java(第一次听说时我惊呆了),node.js(少量游戏用的,还有一个node.js写的引擎叫pemolo),php(做http协议通讯的游戏时php+mysql也不失为一种好选择) 看过两个手机游戏服务器引擎  1.firefly(9秒社团开发的一款python手机游戏服务器框架)  2.kbengine(按bigworld的架构来设计的,c++ + python的)  2.数据库 现在比较流行的两种数据库,关系型数据库mysql和非关系型数据库mongodb。这是我用的最多的两个数据库。 关于两者之间的各种比较,网上有很多,当然你也可以用其他数据库,至于sql server,不怕被坑你就用吧(我向来对微软的东西没好感)。 3.服务端架构 讲一下我用过的其中一种架构模型,也是公司按照bigworld架构设计的: 1.Gate:首先要有一个Gate(网关)服务器,负责客户端连接及消息转发到Game(游戏服),保持客户端到服务端的连接 没有任何逻辑,只做消息加密和解密,以及客户端和服务器消息的转发(相当于两者之间的桥梁). 2.GameServer:GameServer是游戏进程,提供游戏逻辑功能(采用单进程(或者单线程)模型,手机游戏服务器的瓶颈从来不在CPU,所以只做逻辑功能的话单线程足够了,在这里没必要用多线程或多进程)。 3.DBManager:实现数据库的读写,方便Game服务器异步读写数据库的数据(有些把数据库读写放在游戏服,没有单独的服务器,那恐怕游戏服单进程就不够用了)。 4.GameManager:负责管理所有的GameServer,GameServer之间消息转发,提供广播到所有Game的功能。 4.协议 客户端与服务器之间协议通信,可以用tcp或者http。主要看游戏模型,如果是那种弱联网单机玩法,用http足够了,像天天酷跑之类,只在需要的时候处理一条http请求响应。 不过tcp用的比较还是比较多的。现在的网络游戏大多数都是tcp,像MMORPG类游戏。我们现在的游戏就是同时用了http和tcp,客户端和游戏服采用http协议。只有多人战斗转向战斗服才采用tcp长链接。 udp:其实游戏是有udp的,在一些高效率的场景下比如pvp即时战斗,tcp的拥塞控制和超时重传并不适合,有些就用的udp,然后自己做丢包重发,拿网络公平性换游戏局部的效率。 现在参与开发的游戏就同时使用了http协议和tcp协议,在游戏服是单机玩法用http协议,战斗服需要长连接保存协议状态,用的tcp。 5.存盘 有数据库就肯定有数据库读写操作,最主要的还是存盘(save),周期存盘还是即时存盘 即时存盘就是每一次操作数据都进行存到数据库,当然这样会导致对数据库的操作过于频繁,毕竟这是效率的瓶颈之一。 周期存盘也叫固定存盘,就是每隔固定时间存盘一次,比如10秒或者15秒,这样数据库的压力就会小很多,当然自己就要在内存中做好数据操作,防止数据污染或者存盘不上导致回档。 MMCloud游戏服务器解决方案图 二.开发一个手机游戏服务器需要掌握的开源技术 1.libevent,boost.asio等网络库,网上有很多开源网络库,与其自己造轮子,不如就用开源网络库作为自己服务器的通讯库。最出名的就属libevent和boost.asio了。 Boost的ASIO是一个异步IO库,封装了对Socket的常用操作,简化了基于socket程序的开发。支持跨平台。 libevent是一个C语言写的事件驱动的开源网络库。 至于二者之间的效率,仁者见仁。 当然还有很多:比如云风写的skynet(c + lua),陈硕写的muduo(c++)。都写得很好,云风写的东西简单好用,陈硕在秀他的c++技术。 2.protobuf:全称Google Protocol Buffers,是google开发的的一套用于数据存储,网络通信时用于协议编解码的工具库。它和XML或者JSON差不多,也就是把某种数据结构的信息,以某种格式(XML,JSON)保存起来, protobuf与XML和JSON不同在于,protobuf是基于二进制的。主要用于数据存储、传输协议格式等场合。 protobuf他的优势是对于传输比较大的数据产生的数据很紧凑很小,可以明显减小传输量。 而且处理速度也比较快,又有各种编程语言的实现,例如C++,Java,PHP等等。 缺点是不能明文编辑(数据是二进制的)。 用protobuf rpc进行数据传输很方便,所以是一个不错的选择。google protobuf只负责消息的打包和解包,并不包含RPC的实现,所以需要自己实现。 3.zeromq:消息队列,一个稳健,简洁的多进程通讯方案的基础。ZeroMQ 并不是一个对socket的封装,不能用它去实现已有的网络协议。它有自己的模式,不同于更底层的点对点通讯模式。它有比 tcp 协议更高一级的协议。(当然 ZeroMQ 不一定基于 TCP 协议,它也可以用于进程间和进程内通讯。)它改变了通讯都基于一对一的连接这个假设。 在这里它更适合服务器与服务器之间的通信,比如逻辑服和战斗服之间进行通信。 4.memcached:一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。 可以用来做缓存,比如客户端本来每次操作都需要操作数据库,会严重影响效率,这时在中间加一层缓存系统,就提升了性能。基于http协议的通信用memcached是一个不错的选择,如果是tcp长链接,直接维护一个在线的内存对象就可以了。 类似的技术还有redis等。 5.glog/zlog:你肯定需要记录日志,看爱好喽。 6.tcmalloc:内存性能分析 7.distcc:分布式编译工具,之前每次修改代码都要make半个小时,用distcc进行多台电脑同时帮你编译,快很多。 MMCloud拥有超15年游戏运营经验,全球50+ CN2顶级网络,1300+个CDN节点资源,包括并不仅限于中国香港,美国,日本,韩国,新加坡,马来西亚等10多个国家直接CN2高速专线接入。无条件免备案,提供智能化DDOS防护升级,负载均衡优化,数据库集群服务及建议,高防CDN节点布局优化等一系列高品质服务,打造适合企业稳抓客户布局全球的全能型游戏解决方案。详询MMCloud客服QQ95015688 。

    2021.12.21 浏览:189
  • 如何在Debian 9 Stretch上安装LAMP

    本教程将向您展示如何在Debian 9 stretch上安装Apache、MariaDB和PHP7(LAMP堆栈)。LAMP是用于构建动态网站和web应用程序的最常见的web服务堆栈。它由四个组件组成——Linux、Apache、MySQL/MariaDB、PHP——Linux是操作系统;Apache是web服务器;MySQL/MariaDB是数据库;PHP是一种服务器端脚本语言。 这四个组件都是免费的、开源的。然而,由于MySQL现在归甲骨文所有,甲骨文有可能将其转变为封闭源代码产品,因此我们将选择MariaDB而不是MySQL。您可以在VPS(虚拟专用服务器)或本地Debian 9计算机上学习本教程。 请注意,在Debian上安装软件时,您需要拥有root权限。可以在命令开头添加sudo,或者使用su-command切换到root用户。 步骤1:更新软件包 在安装LAMP堆栈之前,最好更新存储库和软件包。在Debian 9操作系统上运行以下命令。 sudo apt update sudo apt upgrade 第2步:安装Apache Web服务器 输入以下命令以安装ApacheWeb服务器。apache2 utils包将安装一些有用的实用程序,比如ApacheHTTP服务器基准测试工具(ab)。 sudo apt install apache2 apache2-utils 安装之后,Apache应该会自动启动。使用systemctl检查其状态。 systemctl status apache2 输出: ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: Active: active (running) since Sun 2017-08-13 02:36:48 UTC; 5min ago Main PID: 14463 (apache2) CGroup: /system.slice/apache2.service ├─14463 /usr/sbin/apache2 -k start ├─14465 /usr/sbin/apache2 -k start └─14466 /usr/sbin/apache2 -k start 如果它没有运行,请使用systemctl启动它。 sudo systemctl start apache2 让Apache在启动时自动启动也是一个好主意。 sudo systemctl enable apache2 检查Apache版本: sudo apache2 -v 输出: Server version: Apache/2.4.25 (Debian) Server built: 2017-07-18T18:37:33 现在在浏览器地址栏中输入Debian 9服务器的公共IP地址。你应该看看“它有用!”网页,这意味着Apache Web服务器正在正常运行。 您可以使用以下命令在终端中获取Debian 9服务器的公共IP地址。 sudo apt install curl curl http://icanhazip.com 如果要在本地Debian 9设备上安装LAMP,则应在浏览器地址栏中键入127.0.0.1或localhost。 最后,我们需要将www数据(Apache用户)设置为web根目录的所有者。默认情况下,它归root用户所有。 sudo chown www-data:www-data /var/www/html/ -R 步骤3:安装MariaDB数据库服务器 MariaDB是MySQL的替代品。输入以下命令将其安装到Debian 9上。 sudo apt install mariadb-server mariadb-client MariaDB推荐使用MySQL。事实上,如果您尝试使用以下命令在Debian 9上安装MySQL,它将安装MariaDB并将MariaDB设置为默认数据库服务器。 sudo apt install mysql-server mysql-client 安装后,MariaDB服务器应自动启动。使用systemctl检查其状态。 systemctl status mariadb 输出: ● mariadb.service - MariaDB database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2017-08-13 03:05:17 UTC; 1min 37s ago Main PID: 16127 (mysqld) Status: "Taking your SQL requests now..." CGroup: /system.slice/mariadb.service └─16127 /usr/sbin/mysqld 如果未运行,请使用以下命令启动: sudo systemctl start mariadb 要使MariaDB在启动时自动启动,请运行 sudo systemctl enable mariadb 现在运行安装后安全脚本。 sudo mysql_secure_installation 当它要求您输入根密码时,请按enter键,因为根密码尚未设置。然后输入y设置MariaDB服务器的根密码。 接下来,只需按Enter键即可回答所有剩余的问题。这将删除匿名用户、禁用远程根登录并删除测试数据库。这一步是MariaDB数据库安全的基本要求。 现在,您可以使用以下命令登录到MariaDB服务器。 sudo mariadb -u root 要退出,快跑 exit; 检查MariaDB服务器版本信息。 mariadb --version 输出: mariadb Ver 15.1 Distrib 10.1.23-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2 步骤4:安装PHP7 输入以下命令以安装PHP7。 sudo apt install php7.0 libapache2-mod-php7.0 php7.0-mysql php-common php7.0-cli php7.0-common php7.0-json php7.0-opcache php7.0-readline 启用ApachePHP7。0模块,然后重新启动Apache Web服务器。 sudo a2enmod php7.0 sudo systemctl restart apache2 检查PHP版本信息。 php --version 输出: PHP 7.0.19-1 (cli) (built: May 11 2017 14:04:47) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.0.19-1, Copyright (c) 1999-2017, by Zend Technologies 要使用Apache服务器测试PHP脚本,我们需要创建一个info。Web根目录中的php文件。 sudo nano /var/www/html/info.php 将以下PHP代码粘贴到文件中。 <?php phpinfo(); ?> 保存并关闭文件。现在在浏览器地址栏中,输入服务器ip地址/信息。php。用实际ip替换服务器ip地址。如果您在本地计算机上遵循本教程,请键入127.0.0.1/info。php或localhost/info。php。 您应该可以看到服务器的PHP信息。这意味着PHP脚本可以在Apache web服务器上正常运行。您可以发现Zend OPcache已启用。 恭喜!您已经在Debian 9 Stretch上成功安装了Apache、MariaDB和PHP7。为了服务器的安全,您应该删除信息。php文件,以防止窥视。 sudo rm /var/www/html/info.php 就这样!我希望本教程能帮助您在Debian 9 Stretch上安装LAMP stack。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯来获取新的教程。

    2022.03.23 浏览:163
  • 使用BIND9在Debian 10 Buster上设置自己的DNS解析器

    本教程将向您展示如何使用广泛使用的BIND9 DNS软件在Debian 10 Buster上设置本地DNS解析器。DNS解析器有很多同义词,下面列出了其中一些。它们都指同一件事。 全解析程序(与存根解析程序相反) DNS递归器 递归DNS服务器 递归解析器 还要注意,DNS服务器也可以称为名称服务器。DNS解析器的示例有8.8.8.8(谷歌公共DNS服务器)和1.1.1.1(Cloudflare公共DNS服务器)。你电脑上的操作系统也有一个解析器,不过由于功能有限,它被称为存根解析器。存根解析器是终端用户计算机上的一个小型DNS客户端,它接收来自Firefox等应用程序的DNS请求,并将请求转发给递归解析器。几乎每个解析器都可以缓存DNS响应以提高性能,因此它们也被称为缓存DNS服务器。 为什么要运行自己的DNS解析程序 通常情况下,您的计算机或路由器使用ISP的DNS解析器查询域名以获得IP地址。运行自己的本地DNS解析器可以加快DNS查找,因为 本地DNS解析程序只侦听您的DNS请求,不响应其他人的DNS请求,因此您直接从解析程序上的缓存获得DNS响应的可能性要高得多。 您的计算机和DNS解析器之间的网络延迟被消除(几乎为零),因此DNS查询可以更快地发送到根DNS服务器。 如果您运行邮件服务器并使用DNS黑名单(DNSBL)阻止垃圾邮件,则建议您运行本地DNS解析程序以加快DNS查找。如果您在VPS(虚拟专用服务器)上运行自己的VPN服务器,那么在同一个VPS上安装DNS解析器也是一个很好的做法。 如果你不喜欢你的互联网浏览历史记录存储在第三方服务器上,你可能还想运行自己的DNS解析器。 如果您拥有一个网站,并且希望您自己的DNS服务器处理您的域名的名称解析,而不是使用您的域注册商的DNS服务器,那么您需要设置一个权威DNS服务器,它不同于DNS解析程序。BIND可以同时充当权威DNS服务器和DNS解析程序,但最好在不同的框中分离这两个角色。本教程介绍如何设置本地DNS解析器,因为它将在本地主机/本地网络上使用,所以不需要加密(通过TLS的DNS或通过HTTPS的DNS)。设置DoT或DoH服务器将在以后的文章中讨论。 请注意,在Debian上安装软件时,您需要拥有root权限。可以在命令开头添加sudo,或者使用su-command切换到root用户。 在Debian 10 Buster上安装BIND9 BIND(Berkeley Internet Name Domain)是一款开源DNS服务器软件,由于其稳定性和高质量,在Unix/Linux上得到了广泛应用。它最初由加州大学伯克利分校(UC Berkeley)开发,后来在1994年被转移到互联网系统联盟(Internet Systems Consortium,Inc.)进行开发。 运行以下命令,从默认存储库在Debian 10 Buster上安装BIND 9。BIND 9是当前版本,BIND 10是一个死项目。 sudo apt update sudo apt install bind9 bind9utils bind9-doc bind9-host dnsutils 检查版本信息。 sudo named -v 样本输出: BIND 9.11.5-P4-5.1-Debian (Extended Support Version) <id:998753c> 要检查版本号和生成选项,请运行 sudo named -V 默认情况下,绑定在安装后自动启动。您可以通过以下方式检查其状态: systemctl status bind9 提示:如果上述命令没有立即退出,请按Q。 如果它没有运行,那么从以下内容开始: sudo systemctl start bind9 并在启动时启用自动启动: sudo systemctl enable bind9 BIND服务器将以BIND用户的身份运行,该用户是在安装过程中创建的,并在TCP和UDP端口53上侦听,如运行以下命令所示: sudo netstat -lnptu | grep named 通常DNS查询被发送到UDP端口53。TCP端口53用于大小大于512字节的响应。 绑定守护进程被称为named。(守护进程是在后台运行的软件。)命名的二进制文件由bind9包安装,还有另一个重要的二进制文件:rndc,远程名称守护程序控制器,由bind9utils包安装。rndc二进制文件用于重新加载/停止和控制绑定守护进程的其他方面。通信通过TCP端口953完成。 例如,我们可以检查绑定名称服务器的状态。 sudo rndc status 本地DNS解析程序的配置 /etc/bind/是包含bind配置的目录。 命名的。conf:主配置文件,包括其他三个文件的配置。 db。127:本地主机IPv4反向映射区域文件。 db。本地:本地主机转发IPv4和IPv6映射区域文件。 db。空:一个空的区域文件 Debian 10上的bind9软件包没有附带db。根文件,它现在使用位于/usr/share/dns/root的根提示文件。提示。DNS解析程序使用根提示文件来查询根DNS服务器。有13组根DNS服务器,来自a.root-servers。net到m.root服务器。网 Debian上的BIND9服务器开箱即用,只为本地主机和本地网络客户端提供递归服务。外界的质疑将被拒绝。所以你不必编辑配置文件。为了让您熟悉BIND 9配置,我将向您展示如何启用递归服务。 主绑定配置文件/etc/BIND/named。conf从其他3个文件中获取设置。 /etc/bind/named。形态选项 /etc/bind/named。conf.local /etc/bind/named。conf.default-zones 要启用递归服务,请编辑第一个文件。 sudo nano /etc/bind/named.conf.options 在options子句中,添加以下行。将allow recursion语句中的IP地址替换为您自己的本地网络地址。 // hide version number from clients for security reasons. version "not currently available"; // optional - BIND default behavior is recursion recursion yes; // provide recursion service to trusted clients only allow-recursion { 127.0.0.1; 192.168.0.0/24; 10.10.10.0/24; }; // enable the query log querylog yes; 保存并关闭文件。然后测试配置文件语法。 sudo named-checkconf 如果测试成功(由静默输出指示),则重新启动BIND9。 sudo systemctl restart bind9 如果绑定服务器上运行防火墙,则需要打开端口53,以允许LAN客户端发送DNS查询。如果使用UFW防火墙,可以运行以下命令。 sudo ufw allow in from 192.168.0.0/24 to any port 53 这将打开专用网络192.168.0.0/24的TCP和UDP端口53。然后从同一局域网内的另一台计算机上,我们可以运行以下命令来查询google的A记录。通用域名格式。用绑定解析程序的IP地址替换192.168.0.102。 dig A google.com @192.168.0.102 现在,在绑定解析器上,使用以下命令检查查询日志。 sudo journalctl -eu bind9 这将显示bind9服务单元的最新日志消息。我可以在日志中找到以下行,这表明谷歌的DNS查询。com的A记录已从IP地址为192.168.0.103的端口57806收到。 named[1162]: client @0x7f4d2406f0f0 192.168.0.103#57806 (google.com): query: google.com IN A +E(0)K (192.168.0.102) 在Debian 10 Buster服务器上设置默认DNS解析程序 在绑定服务器上,我们需要将127.0.0.1设置为默认DNS解析程序。您可以使用以下命令检查Debian 10上的当前DNS解析器。 cat /etc/resolv.conf 样本输出: # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 2001:19f0:300:1704::6 nameserver 108.61.10.10 Debian 10上的bind9软件包附带一个Systemd服务单元bind9 resolvconf。服务,这将帮助我们在Debian服务器上将BIND设置为默认DNS解析程序。默认情况下,这个服务是禁用的,我们需要启动它并在启动时启用自动启动。 sudo systemctl start bind9-resolvconf sudo systemctl enable bind9-resolvconf 现在可以检查/etc/resolv的内容。又来了。如您所见,127.0.0.1(BIND)现在是Debian 10 Buster上的默认DNS解析程序。 如果DNS解析程序不是127.0.0.1,则可能是系统没有resolvconf二进制文件,这会导致bind9 resolvconf服务失败。您需要安装resolvconf包并重新启动服务。 sudo apt install resolvconf sudo systemctl restart bind9-resolvconf 在客户端计算机上设置默认DNS解析程序 现在,您可以在局域网上配置其他计算机,将绑定服务器用作DNS解析程序。对于Windows和MacOS计算机,您可以在谷歌上搜索以了解如何设置默认DNS解析程序。在这里,我将向您展示如何在Linux桌面计算机上设置DNS解析器。以下方法适用于任何使用NetworkManager的Linux发行版。 单击Linux桌面上的Network Manager图标以查找编辑连接。(在某些Linux发行版上,需要右键单击网络管理器。) 然后选择当前连接并单击cog图标以编辑此连接。 选择IPv4设置选项卡,将方法从自动(DHCP)更改为仅自动(DHCP)地址,这将阻止Ubuntu系统从路由器获取DNS服务器地址。然后指定一个DNS服务器。在这里,我在局域网中输入绑定服务器的IP地址。 保存更改。然后重新启动NetworkManager,使更改生效。 sudo systemctl restart NetworkManager 重新连接后,再次单击网络管理器图标并选择连接信息。您可以看到您的Linux桌面计算机现在正在使用绑定DNS服务器。 如何在绑定中禁用IPv6 如果您的网络中没有使用IPv6,那么最好在BIND中关闭IPv6,否则,BIND日志中会出现很多关于IPv6的错误,如下所示。 network unreachable resolving 'mirrors.fedoraproject.org/A/IN': 2001:4178:2:1269:dead:beef:cafe:fed5#53 network unreachable resolving 'mirrors.fedoraproject.org/AAAA/IN': 2001:4178:2:1269:dead:beef:cafe:fed5#53 network unreachable resolving 'mirrors.fedoraproject.org/A/IN': 2610:28:3090:3001:dead:beef:cafe:fed5#53 network unreachable resolving 'mirrors.fedoraproject.org/AAAA/IN': 2610:28:3090:3001:dead:beef:cafe:fed5#53 要在Ubuntu上的BIND中禁用IPv6,只需打开/etc/default/bind9文件 sudo nano /etc/default/bind9 在选项中添加-4。 OPTIONS="-u bind -4" 保存并关闭文件。然后重启BIND,就完成了。 sudo systemctl restart bind9 绑定服务失败 如果绑定解析程序无法回答DNS查询(SERVFAIL),并且在绑定日志中看到以下行。 dnssec: warning: managed-keys-zone: Unable to fetch DNSKEY set '.': timed out 这可能是因为您的服务器没有可用的IPv6连接。这发生在我的一台服务器上。我以为IPv6连接正常工作,但由于我不知道的原因,它突然中断了。一旦我在BIND中禁用了IPv6,DNS解析将再次工作。 绑定自动重启 如果由于任何原因导致绑定进程被终止,则需要运行以下命令来重新启动它。 sudo systemctl restart bind9 我们不需要手动输入这个命令,而是可以通过编辑指定的。服务系统服务单位。为了覆盖默认的systemd服务配置,我们创建了一个单独的目录。 sudo mkdir -p /etc/systemd/system/bind9.service.d/ 然后在这个目录下创建一个文件。 sudo nano /etc/systemd/system/bind9.service.d/restart.conf 在文件中添加以下行,这将使Bind在检测到故障5秒后自动重新启动。 [Service] Restart=always RestartSec=5s 保存并关闭文件。然后重新加载系统D。 sudo systemctl daemon-reload 要检查这是否有效,请使用以下方法杀死Bind: sudo pkill named 然后检查绑定状态。你会发现Bind自动重启。 systemctl status bind9 绑定最大缓存大小 BIND可以在服务器上缓存DNS结果,以加快客户端的DNS查找。BIND假设您正在运行一个专用的DNS解析程序,即没有其他web服务在同一台主机上运行,因此默认缓存大小(由最大缓存大小定义)设置为总RAM的90%,以实现最佳性能。绑定开始时,可以在绑定日志(sudo journalctl-eu bind9)中看到下面这样的一行。 none:100: 'max-cache-size 90%' - setting to 7165MB (out of 7961MB) 请注意,BIND不会立即使用90%的RAM。如果只有几个DNS请求,BIND只使用少量RAM,因为缓存的DNS结果不多。如果有大量DNS请求,那么它将使用大量RAM来存储DNS缓存。 如果RAM有限,您可能不希望BIND将90%的RAM用于缓存。编辑绑定配置文件/etc/BIND/named。形态选项。 sudo nano /etc/bind/named.conf.options 在options子句中添加以下指令。将50%更改为您的首选值。 max-cache-size 50%; 重新启动BIND以使更改生效。 sudo systemctl restart bind9 结论 我希望本教程能帮助您使用BIND9在Debian 10 Buster上设置本地DNS解析器。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?

    2022.03.23 浏览:222
  • 使用BIND9在Ubuntu 20.04上设置本地DNS解析器

    本教程将向您展示如何使用广泛使用的BIND9 DNS软件在Ubuntu 20.04上设置本地DNS解析程序。DNS解析程序有许多名称,下面列出了其中一些名称。它们都指同一件事。 全解析程序(与存根解析程序相反) DNS递归器 递归DNS服务器 递归解析器 另外,请注意,DNS服务器也可以称为名称服务器。DNS解析器的示例有8.8.8.8(谷歌公共DNS服务器)和1.1.1.1(Cloudflare公共DNS服务器)。计算机上的操作系统也有一个解析器,尽管由于其功能有限,它被称为存根解析器。存根解析程序是终端用户计算机上的一个小型DNS客户端,它接收来自Firefox等应用程序的DNS请求,并将请求转发给递归解析程序。几乎每个解析器都可以缓存DNS响应以提高性能,因此它们也被称为缓存DNS服务器。 为什么要运行自己的本地DNS解析程序 通常,您的计算机或路由器使用ISP的DNS解析程序来查询DNS名称,那么为什么要运行本地DNS解析程序呢? 它可以加快DNS查找,因为本地DNS解析程序只侦听您的DNS请求,而不应答其他人的DNS请求,因此您直接从解析程序上的缓存中获取DNS应答的几率要高得多。您的计算机和DNS解析器之间的网络延迟被消除(几乎为零),因此DNS查询可以更快地发送到根DNS服务器。 如果您运行邮件服务器并使用DNS黑名单(DNSBL)阻止垃圾邮件,那么您应该运行自己的DNS解析程序,因为一些DNS黑名单(如URIBL)会拒绝来自公共DNS解析程序的请求。 如果您在VPS(虚拟专用服务器)上运行自己的VPN服务器,那么在同一个VPS上安装DNS解析器也是一个很好的做法。 如果你不喜欢你的互联网浏览历史记录存储在第三方服务器上,你可能还想运行自己的DNS解析器。 如果你拥有一个网站,并希望你自己的DNS服务器处理域名的名称解析,而不是使用你的域名注册商的DNS服务器,那么你需要设置一个权威的DNS服务器,这与DNS解析程序不同。BIND可以同时充当权威DNS服务器和DNS解析程序,但最好在不同的框中分离这两个角色。 本教程介绍如何设置本地DNS解析器,因为它将在本地主机/本地网络上使用,所以不需要加密(通过TLS的DNS或通过HTTPS的DNS)。设置点解析器或DoH解析器将在以后的文章中讨论。 提示:本地并不意味着你的家用电脑。相反,这意味着DNS解析程序与DNS客户端在同一个机器上运行。您可以在家庭计算机上安装绑定DNS解析程序。这是你家电脑的本地版本。您可以在云服务器上安装绑定DNS解析器,它位于云服务器的本地。 使用BIND9在Ubuntu 20.04上设置本地DNS解析器 BIND(Berkeley Internet Name Domain)是一款开源DNS服务器软件,由于其稳定性和高质量,在Unix/Linux上得到了广泛应用。它最初由加州大学伯克利分校(UC Berkeley)开发,后来在1994年被转移到互联网系统联盟(Internet Systems Consortium,Inc.)进行开发。 从默认存储库运行以下命令在Ubuntu 20.04上安装BIND 9。BIND 9是当前版本,BIND 10是一个死项目。 sudo apt更新sudo apt安装bind9 bind9utils bind9 dnsutils bind9 doc bind9主机 检查版本。 命名为-v 样本输出: BIND 9.16.1-Ubuntu(稳定版)&lt;id:d497c32&gt; 要检查版本号和生成选项,请运行 命名为-V 默认情况下,绑定在安装后自动启动。您可以通过以下方式检查其状态: systemctl状态已命名 如果它没有运行,那么从以下内容开始: sudo systemctl启动名为 并在启动时启用自动启动: sudo systemctl enable named BIND服务器将以BIND用户的身份运行,该用户是在安装过程中创建的,并在TCP和UDP端口53上侦听,如运行以下命令所示: sudo netstat-lnptu | grep命名 通常DNS查询被发送到UDP端口53。TCP端口53用于大小大于512字节的响应。 绑定守护进程被称为named。(守护进程是在后台运行的软件。)命名的二进制文件由bind9包安装,还有另一个重要的二进制文件:rndc,远程名称守护程序控制器,由bind9utils包安装。rndc二进制文件用于重新加载/停止和控制绑定守护进程的其他方面。通信通过TCP端口953完成。 例如,我们可以检查绑定名称服务器的状态。 sudo rndc状态 本地DNS解析程序的配置 /etc/bind/是包含bind配置的目录。 命名的。conf:主配置文件,包括其他三个文件的配置。 db。127:本地主机IPv4反向映射区域文件。 db。本地:本地主机转发IPv4和IPv6映射区域文件。 db。空:一个空的区域文件 Ubuntu 20.04上的bind9软件包没有附带db。根文件,它现在使用位于/usr/share/dns/root的根提示文件。提示。DNS解析程序使用根提示文件来查询根DNS服务器。有13组根DNS服务器,来自a.root-servers。net到m.root服务器。网 Ubuntu上的BIND9服务器开箱即用,只为本地主机和本地网络客户端提供递归服务。外界的质疑将被拒绝。所以你不必编辑配置文件。为了让您熟悉BIND 9配置,我将向您展示如何启用递归服务。 主绑定配置文件/etc/BIND/named。conf从其他3个文件中获取设置。 /etc/bind/named。形态选项 /etc/bind/named。conf.local /etc/bind/named。conf.default-zones 要启用递归服务,请编辑第一个文件。 sudo nano/etc/bind/named。形态选项 在options子句中,添加以下行。将allow recursion语句中的IP地址替换为您自己的本地网络地址。 //出于安全原因,对客户端隐藏版本号。版本“当前不可用”;//可选-绑定默认行为为递归递归是;//向受信任的客户端提供递归服务只允许递归{127.0.0.1;192.168.0.0/24;10.10.10.0/24;};//启用查询日志querylog yes; 保存并关闭文件。然后测试配置文件语法。 sudo命名为checkconf 如果测试成功(由静默输出指示),则重新启动BIND9。 sudo systemctl重新启动已命名 如果绑定服务器上运行UFW防火墙,则需要打开端口53以允许LAN客户端发送DNS查询。 sudo ufw允许从192.168.0.0/24进入任何端口53 这将打开专用网络192.168.0.0/24的TCP和UDP端口53。然后从同一局域网内的另一台计算机上,我们可以运行以下命令来查询google的A记录。通用域名格式。用绑定解析程序的IP地址替换192.168.0.102。 挖一个谷歌。com@192.168.0.102 现在,在绑定解析器上,使用以下命令检查查询日志。 sudo journalctl-欧盟命名 这将显示bind9服务单元的最新日志消息。我在日志中找到了下面一行,这表明谷歌的DNS查询。com的A记录已从192.168.0.103的57806端口收到。 命名为[1162]:client@0x7F4D2406F0F0192.168.0.103#57806(google.com):query:google。A+E(0)K(192.168.0.102)中的com 在Ubuntu 20.04服务器上设置默认DNS解析程序 Systemd resolved在Ubuntu 20.04上提供了存根解析器。正如本文开头提到的,存根解析器是最终用户计算机上的一个小型DNS客户端,它接收来自Firefox等应用程序的DNS请求,并将请求转发给递归解析器。 使用此命令可以看到默认的递归解析器。 系统解析——状态 提示:如果上述命令没有立即退出,您可以按Q键使其退出。 正如您所见,BIND不是默认值。如果在绑定服务器上运行以下命令, 挖一个facebook。通用域名格式 在绑定日志中找不到此DNS查询。相反,您需要明确地告诉dig使用BIND。 挖一个facebook。com@127.0.0.1 要将BIND设置为默认解析程序,请打开systemd解析的配置文件。 sudo nano/etc/systemd/resolved。形态 在[Resolve]部分,添加以下行。这将为您的服务器设置一个全局DNS服务器。 DNS=127.0.0.1 保存并关闭文件。然后重新启动systemd解析服务。 sudo systemctl重启systemd已解决 现在运行以下命令检查默认DNS解析器。 系统解析——状态 现在在不指定127.0.0.1的情况下执行DNS查询。 挖一个facebook。通用域名格式 您将在BIND日志中看到DNS查询,这意味着BIND现在是默认的递归解析器。如果在绑定日志中没有看到任何查询,则可能需要配置每个链接的DNS服务器。 在Ubuntu 20.04上配置每链接DNS服务器 您还可以配置每链路DNS服务器,这将覆盖全局DNS服务器。有两种方法可以配置每链路DNS服务器: 通过systemd解决 通过网络计划 系统解决 列出/etc/systemd/network/目录下的文件。 ls/etc/systemd/network/ 样本输出: 05-0。网络99默认值。链接 如你所见,我有两个链接配置文件。05-0。网络文件是我的主网络接口,所以我编辑这个文件。 sudo nano/etc/systemd/network/05-eth0。网络 你的文件名可能不同。如果此目录下没有文件,则您的每链接DNS配置不受systemd resolved控制。 注释掉默认的DNS和域条目,并添加您自己的DNS条目。 DNS=127.0.0.1 保存并关闭文件。然后重新启动systemd resolved和systemd networkd服务。 sudo systemctl重启systemd已解决systemd networkd 网络计划 一些Ubuntu服务器可能正在使用netplan来配置每链接网络。在这种情况下,您需要在中配置DNS服务器。/etc/netplan/目录下的yaml文件。列出此目录中的文件。 ls/etc/netplan/ 样本输出: 01 netcfg。亚马尔 所以我编辑了这个文件。 sudo nano/etc/netplan/01 netcfg。亚马尔 在nameservers部分设置DNS服务器地址。 名称服务器:搜索:[无效]地址:-127.0.0.1 您可以像下面这样指定多个DNS解析程序,这可以减少DNS失败的机会。 名称服务器:搜索:[无效]地址:-127.0.0.1-8.8.8-1.1.1.1 保存并关闭文件。然后应用更改。 sudo网络计划申请 注意:如果您看到以下错误消息,则netplan无法处理配置文件。 位于/etc/netplan/01 netcfg的YAML无效。yaml不一致压痕 您应该修复不一致的缩进,然后再次运行sudo netplan apply命令。 故障排除 检查/etc/resolv的内容。形态。 cat/etc/resolv。形态 如您所见,127.0.0.1(BIND)是默认的DNS解析器。如果看到不同的值,这意味着BIND仍然不是默认的DNS解析程序。您可以使用resolveconf实用程序将BIND设置为默认解析器。 安装resolvconf包 sudo apt安装resolvconf 然后启动命名的resolvconf服务。 sudo systemctl启动名为resolvconf。服务 启动时启用自动启动。 sudo systemctl启用命名的resolvconf。服务 现在检查/etc/resolv。再次提交conf文件。BIND现在应该是Ubuntu服务器上的默认DNS解析程序。 cat/etc/resolv。形态 请注意,像Linode这样的主机提供商可能会使用网络助手自动生成/etc/resolv。conf文件。要更改默认DNS解析程序,需要在主机控制面板中禁用该网络帮助程序。 如果这个方法仍然不起作用,可能是因为/etc/resolv。Ubuntu服务器上的conf文件不是指向/run/resolvconf/resolv的符号链接。conf.您需要删除/etc/resolv。并创建一个符号链接。 sudo rm/etc/resolv。conf sudo ln-s/run/resolvconf/resolv。conf/etc/resolv。形态 您还可以手动创建此文件并将其设为只读,以防止同一服务器上的其他应用程序覆盖它。 sudo rm/etc/resolv。conf echo“nameserver 127.0.0.1”| sudo tee/etc/resolv。conf sudo chmod 444/etc/resolv。形态 systemd resolved没有运行 如果在执行systemd resolve--status命令后看到以下错误, 无法获取全局数据:单位dbus org。免费桌面。决心1。找不到服务。 可能是因为系统没有运行。首先: sudo systemctl状态systemd已解决 启用自动启动。 sudo systemctl enable systemd已解决 在客户端计算机上设置默认DNS解析程序 在Ubuntu桌面上,您可以按照上面的说明设置默认DNS解析程序,但请记住将127.0.0.1替换为绑定服务器的IP地址。在MacOS和Windows上设置默认DNS解析器的步骤可以在Internet上找到。 如何在绑定中禁用IPv6 如果您的网络中没有使用IPv6,那么最好在BIND中关闭IPv6,否则,BIND日志中会出现很多关于IPv6的错误,如下所示。 “网络无法访问”镜像。软呢帽项目。org/A/IN':2001:4178:2:1269:dead:beef:cafe:fed5#53网络无法访问的解析“镜像”。软呢帽项目。org/AAAA/IN:2001:4178:2:1269:dead:beef:cafe:fed5#53网络无法访问的解析“镜像”。软呢帽项目。org/A/IN':2610:28:3090:3001:dead:beef:cafe:fed5#53网络无法访问的解析镜像。软呢帽项目。org/AAAA/IN':2610:28:3090:3001:死亡:牛肉:咖啡馆:fed5#53 要在Ubuntu上的BIND中禁用IPv6,只需打开/etc/default/named文件 sudo nano/etc/default/named 在选项中添加-4。 选项=“-u绑定-4” 保存并关闭文件。然后重启BIND,就完成了。 sudo systemctl重新启动已命名 绑定服务失败 如果绑定解析程序无法回答DNS查询(SERVFAIL),并且在绑定日志中看到以下行。 dnssec:警告:托管密钥区域:无法获取DNSKEY集合“”:超时 这可能是因为您的服务器没有可用的IPv6连接。这发生在我的一台服务器上。我以为IPv6连接正常工作,但由于我不知道的原因,它突然中断了。一旦我在BIND中禁用了IPv6,DNS解析将再次工作。 命名为自动重启 如果由于任何原因您的命名进程被终止,您需要运行以下命令来重新启动它。 sudo systemctl重新启动已命名 我们不需要手动输入这个命令,而是可以通过编辑Named命令使Named自动重启。服务系统服务单位。为了覆盖默认的systemd服务配置,我们创建了一个单独的目录。 sudo mkdir-p/etc/systemd/system/named。服务d/ 然后在这个目录下创建一个文件。 sudo nano/etc/systemd/system/named。服务d/重启。形态 在文件中添加以下行,这将使Named在检测到故障5秒后自动重新启动。 [服务]重新启动=始终重新启动秒=5s 保存并关闭文件。然后重新加载系统D。 sudo systemctl后台程序重新加载 要检查这是否有效,请使用以下命令终止命名: 苏多·普吉尔 然后检查命名状态。你会发现命名自动重启。 systemctl状态已命名 绑定最大缓存大小 BIND可以在服务器上缓存DNS结果,以加快客户端的DNS查找。BIND假设您正在运行一个专用的DNS解析程序,即没有其他web服务在同一台主机上运行,因此默认缓存大小(由最大缓存大小定义)设置为总RAM的90%,以实现最佳性能。绑定启动时,可以在绑定日志(sudo journalctl-eu named)中看到下面这样的一行。 无:100:“最大缓存大小90%”-设置为7165MB(共7961MB) 请注意,BIND不会立即使用90%的RAM。如果只有几个DNS请求,BIND只使用少量RAM,因为缓存的DNS结果不多。如果有大量DNS请求,那么它将使用大量RAM来存储DNS缓存。 如果RAM有限,您可能不希望BIND将90%的RAM用于缓存。编辑绑定配置文件/etc/BIND/named。形态选项。 sudo nano/etc/bind/named。形态选项 在options子句中添加以下指令。将50%更改为您的首选值。 最大缓存大小为50%; 重新启动BIND以使更改生效。 sudo systemctl重新启动已命名 注意:重新启动BIND时,它的整个缓存都将被刷新。 无法联系到任何服务器 如果在客户端计算机上使用dig命令时看到以下错误 ;; 连接超时;无法联系到任何服务器 可能是这样 你的防火墙规则是错误的。检查防火墙日志。 绑定解析程序未运行。 BIND没有监听网络接口。 你能从DNS客户端ping到DNS解析程序吗? 结论 我希望本教程能帮助您在Ubuntu 20.04上使用BIND9设置本地DNS解析器。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?

    2022.03.23 浏览:234
  • 如何在Ubuntu 18.04、19.04上安装亚音速媒体服务器并启用HTTPS

    本教程将向您展示如何在Ubuntu 18.04、19.04上安装亚音速媒体服务器,以及如何使用Nginx或Apache web服务器为亚音速设置反向代理,然后启用HTTPS。 亚音速是一款用Java编写的免费(如free bear)网络媒体流,可用于Linux、MacOS和Windows。使用亚音速,你可以从家用电脑或任何面向公众的电脑上播放音乐,并通过网络浏览器从任何地方收听音乐,因此你不必使用resilio sync或Syncthing等文件同步应用程序同步音乐。 亚音速特征 支持MP3、OGG、AAC和通过HTTP传输的任何其他音频或视频格式。 适用于任何支持网络的媒体播放器,如Winamp、iTunes、XMMS、VLC、MusicMatch和Windows media player 专辑艺术展示、即时播放列表、即时转码 适用于Android、iPhone、Windows Phone的移动应用程序,以及适用于Mac、Windows和Chrome的桌面应用程序。Android应用程序支持离线播放。 收听播客、分配收视率、添加评论和创建播放列表。 与朋友和家人分享你的音乐。 流媒体视频(高级功能) 还有更多 如何在Ubuntu 18.04、19.04上安装亚音速媒体服务器 亚音速媒体服务器是用Java编写的,所以您需要安装Java运行时环境来运行它。可以使用以下命令安装openjdk 8运行时环境。 sudo apt更新sudo apt安装openjdk-8-jre 在撰写本文时,亚音速与Java 11不兼容,如果您以前在Ubuntu 18.04、19.04上安装过Java 11,那么您需要运行以下命令来选择默认的Java版本。 sudo更新替代方案——配置java 键入一个数字以选择Java 8作为默认版本。 接下来,使用以下命令下载亚音速deb包,该命令将下载6.1.5版。你可以在亚音速下载页面上查看最新版本。如果有新版本,只需用新版本号替换6.1.5即可。 wgethttps://s3-eu-west-1.amazonaws.com/subsonic-public/download/subsonic-6.1.5.deb 用dpkg安装。 sudo dpkg-i亚音速-6.1.5。黛布 安装后,亚音速守护进程将自动启动。您可以通过以下方式检查其状态: systemctl状态亚音速 样本输出: ● 亚音速。服务-LSB:亚音速守护进程已加载:已加载(/etc/init.d/Subsonic;错误;供应商预设:已启用)活动:活动(运行)自2018年12月2日星期五起08:03:27 UTC;7分钟前文档:man:systemd sysv generator(8)CGroup:/system。切片/亚音速。服务└─3316 java-Xmx150m-dsubonic。home=/var/subsonic-Dsubsonic。主机=0 如果它没有运行,那么你可以手动启动它 sudo系统CTL启动亚音速 并在系统启动时启用自动启动。 sudo systemctl启用亚音速 默认情况下,亚音速监听0.0.0:4040,这意味着它接受来自本地网络和互联网的请求。 如果您在本地Ubuntu计算机上安装了亚音速,请在浏览器中键入以下地址以访问亚音速web界面。 http://localhost:4040 如果您在面向互联网的Ubuntu服务器上安装了亚音速,请在浏览器中键入以下地址以访问亚音速web界面。 http://your-server-ip:4040 如果你在Ubuntu上使用Java11,你会看到以下错误。解决方案是使用Java8。 请注意,如果您在家庭服务器上安装了亚音速媒体服务器,并且希望从外部网络访问它,则需要在路由器中配置端口转发。如果您的ISP提供了动态IP地址,您还应该设置动态DNS。 默认用户名和密码为admin。登录后,您应该进入设置&gt;用户可以更改管理员密码。 在“设置”页面中添加媒体文件夹,然后单击“保存”按钮。请注意,该文件夹必须可供用户访问亚音速正在运行。添加文件夹后,单击“立即扫描媒体文件夹”按钮,您将能够在索引页中收听音乐。 更改用户 默认情况下,亚音速进程以root用户身份运行。出于安全原因,您应该将其更改为普通用户,这可以通过编辑/etc/default/subsonic文件来完成。 sudo nano/etc/默认/亚音速 找到以下行: 亚音速用户=根 将root用户更改为您自己的用户帐户,如linuxbabe。 亚音速用户=linuxbabe 保存并关闭文件。然后重新启动亚音速守护进程,使更改生效。 sudo systemctl重启亚音速 为亚音速设置Nginx反向代理 如果您想为亚音速web界面使用域名,那么可以设置Nginx反向代理。使用下面的命令在Ubuntu 18.04/19.04上安装Nginx。 sudo apt安装nginx 然后为代理创建一个服务器块文件。 sudo nano/etc/nginx/conf.d/subsonic-proxy。形态 将以下文本放入文件中。替换亚音速。你的领域。使用你自己的域名。location{…}块将向亚音速守护进程发出Nginx代理请求。别忘了为子域设置一个记录。 服务器{listen 80;服务器_namesubsonic.your-domain.com;位置/{proxy_passhttp://127.0.0.1:4040; 代理设置头主机$httpU主机;proxy_set_header X-Real-IP$remote_addr;proxy_set_header X-Forwarded-For$proxy_add_X_Forwarded_For;proxy_set_header X-Forwarded-Proto$scheme;} 保存并关闭文件。然后测试Nginx配置。 sudo nginx-t 如果测试成功,则重新加载Nginx以使新配置生效。 sudo systemctl重新加载nginx 现在,亚音速媒体服务器被置于Nginx之后,您可以使用域名(subsonic.your domain.com)访问亚音速web UI 使用Nginx启用HTTPS 要启用HTTPS安全连接,您可以从Let's Encrypt获得并安装免费的TLS/SSL证书。安装Let's Encrypt(certbot)客户端时使用: sudo-apt-install-software-properties通用sudo-add-apt-repository-ppa:certbot/certbot-sudo-apt-install-certbot-python3-certbot-nginx 然后发出以下命令,该命令使用Certbot Nginx插件自动获取并安装TLS证书。用实际数据替换红色文本。 sudo certbot--nginx--agree tos--redirect--hsts--staple ocsp--email-your-email-address--domain亚音速。你的领域。通用域名格式 几秒钟之内,您将看到如下祝贺消息,这意味着证书已成功获得。 再次转到亚音速媒体服务器Web界面,您会发现HTTP连接自动重定向到HTTPS安全连接。接下来,我们需要修改Nginx配置文件。 sudo nano/etc/nginx/conf.d/subsonic-proxy。形态 现在有两个服务器{…}块,因为Certbot自动配置了SSL服务器块(listen 443 SSL)。在SSL服务器块中,在location/{…}块中添加以下行。 代理重定向http://https://; 此行将把任何http服务器响应重定向到https服务器响应,这是正确显示亚音速设置页面所需的。保存并关闭文件。测试Nginx配置并重新加载。 sudo nginx-t sudo systemctl reload nginx 设置Apache反向代理 如果您更喜欢Apache而不是Nginx,请使用以下软件安装: sudo apt安装apache2 要使用Apache作为反向代理,我们需要启用代理模块和头模块。 sudo a2enmod代理u http头 然后为亚音速媒体服务器创建一个虚拟主机文件。 sudo nano/etc/apache2/可用站点/亚音速代理。形态 将以下配置放入该文件。替换亚音速。你的领域。com与您的实际域名。别忘了为这个子域创建DNS记录。 &lt;虚拟主机*:80&gt;服务器名亚音速。你的领域。com错误文件404/404。html DocumentRoot/var/www-ProxyPass/http://localhost:4040/ProxyPassReverse/http://localhost:4040/标题始终未设置X帧选项&lt/VirtualHost&gt; 保存并关闭文件。然后启用这个虚拟主机。 sudo a2ensite亚音速代理。形态 重新启动Apache sudo systemctl重启apache2 现在,您可以使用域名访问亚音速web UI。 使用Apache启用HTTPS 要启用HTTPS安全连接,您可以从Let's Encrypt获得并安装免费的TLS/SSL证书。安装Let's Encrypt(certbot)客户端时使用: sudo apt get install软件属性公共sudo add apt repository ppa:certbot/certbot sudo apt get update sudo apt install certbot python3 certbot apache 然后使用apache插件获取并安装证书。 sudo certbot--apache--同意tos--重定向--hsts--订书机ocsp--必须订书机--通过电子邮件发送您的电子邮件地址--d亚音速。你的领域。通用域名格式 几秒钟之内,您将看到如下祝贺消息,这意味着证书已成功获得。 您的TLS证书将自动安装。再次转到亚音速媒体服务器Web界面,您会发现HTTP连接自动重定向到HTTPS安全连接。 我希望本教程能帮助你在Ubuntu18.04和Ubuntu19.04上安装亚音速媒体服务器。一如既往,如果你觉得这篇文章有用,那么订阅我们的免费时事通讯。你也可以在Google+、Twitter或我们的Facebook页面上关注我们。

    2022.03.23 浏览:130
  • 在Ubuntu 20.04/18.04上保护你的DNS隐私(DNS over TLS)

    本教程将向您展示如何使用DNS over TLS在Ubuntu 20.04/18.04桌面上保护您的DNS隐私。我们将使用名为stubby的工具来实现这一点。但首先,让我告诉你为什么DNS不安全。 DNS漏洞 DNS是不安全的,因为默认情况下,DNS查询未加密,中间实体可能会利用它进行攻击。DNS缓存毒药是中国防火长城(GFW)广泛用于审查中国互联网的DNS滥用之一。GFW检查发送到中国境外DNS服务器的每个DNS查询。由于纯文本DNS协议基于UDP,这是一种无连接协议,GFW可以欺骗客户端IP和服务器IP。当GFW在其阻止列表中找到域名时,它会更改DNS响应。例如,如果一个中国互联网用户想要访问谷歌。com,中国的防火长城向DNS解析程序返回位于中国的IP地址,而不是谷歌的真实IP地址。然后DNS解析程序将假IP地址返回给用户的计算机。 什么是通过TLS的DNS?它如何保护你的隐私? DNS over TLS意味着DNS查询是通过使用TLS加密的安全连接发送的,这与加密HTTP流量的技术相同,因此第三方无法看到您的DNS查询。与HTTPS和加密的SNI(服务器名称指示)一起,您的浏览历史记录将完全免受ISP的监视。 Stubby是由getdns团队开发的开源DNS存根解析器。它使用getdns库。存根解析器是终端用户计算机上的一个小型DNS客户端,它接收来自Firefox等应用程序的DNS请求,并将请求转发给递归解析器,如1.1.1.1或8.8.8.8。Stubby的特殊之处在于它支持TLS上的DNS。默认情况下,它只发送加密的DNS请求。还有另一个开源的存根解析器cloudflared,它支持HTTPS上的DNS,但stubby已经存在于Ubuntu20.04/18.04存储库中,非常容易使用。 如何在Ubuntu 20.04/18.04桌面上安装和使用Stubby Stubby位于Ubuntu 20.04/18.04存储库中。打开一个终端窗口并运行以下命令来安装它。 sudo-apt-install-stubby 这将安装stubby和getdns库。安装后,stubby将在后台运行。您可以通过以下方式检查其状态: systemctl状态存根 Stubby监听localhost(127.0.0.1)的TCP和UDP端口53,运行以下命令可以看到: sudo netstat-lnptu | grep stubby systemd resolved提供的默认存根解析器监听127.0.0.53的TCP和UDP端口53。 sudo netstat-lnptu | grep系统解决方案 注意:如果dnsmasq正在127.0.0.1的TCP端口53上侦听,则Stubby将仅在127.0.0.1的UDP端口53上侦听。 主配置文件是/etc/stubby/stubby。yml。通常不需要对其进行更改,除非您想使用另一个或您自己的递归解析器。让我解释一些默认配置。您可以通过以下方式打开文件: sudo nano/etc/stubby/stubby。yml 下一行使stubby作为存根解析器而不是完全递归解析器运行,这就是为什么它被命名为stubby。 解析类型:GETDNS解析存根 以下配置使stubby发送使用TLS加密的DNS查询。它不会以明文形式发送质询。 dns_传输_列表:-获取dns_传输_TLS 下面这一行需要远程递归解析器上的有效TLS证书。 tls_身份验证:需要GETDNS_身份验证 以下几行设置stubby守护程序的侦听地址。默认情况下,IPv4和IPv6都已启用。 监听地址:-127.0.0.1-0::1 下面一行以循环方式生成短截图查询递归解析器。如果设置为0,Stubby将按顺序使用每个上游服务器,直到它变得不可用,然后继续使用下一个。 循环上游:1 默认情况下,stubby配置文件中启用了3个递归解析器。它们由stubby开发者运行,支持TLS上的DNS。你可以在DNS隐私网站上看到推荐服务器的完整列表。 dnsovertls。中国盾。com 145.100.185.15 dnsovertls1。中国盾。com 145.100.185.16 getdnsapi。净额185.49.141.37 “附加服务器”部分中还有其他默认禁用的DNS服务器。 dns。第九节。网络单播。切努弗林斯。dk dnsovertls3。中国盾。com(支持TLS1.2和TLS1.3)dnsovertls2。中国盾。com域名解析。cmrg。net dns。拉斯德布林。网 也有DNS服务器监听端口443。如果网络中的端口853被阻止,您可以取消对它们的注释以使用这些服务器。 dnsovertls。中国盾。com dnsovertls1。中国盾。com域名解析。cmrg。net dns。纽托皮亚。组织 现在,按Ctrl+X可以退出nano文本编辑器。 切换到Stubby 编辑/etc/resolve。不再建议使用conf文件更改服务器名称。按照下面的说明,使systemd resolved向stubby发送DNS查询。 GNOME桌面 单击桌面右上角的网络管理器图标。然后选择有线设置。(如果您使用的是Wi-fi,请选择Wi-fi设置。) 点击齿轮按钮。 选择IPv4选项卡,然后在DNS设置中,将自动切换到OFF,这将阻止Ubuntu系统从路由器获取DNS服务器地址。在DNS字段中输入127.0.0.1。单击应用按钮保存更改。 然后重新启动NetworkManager,使更改生效。 sudo systemctl重新启动NetworkManager 一旦你重新连接,你可以看到你的Ubuntu系统现在使用127.0.0.1作为详细信息选项卡中的DNS服务器。 统一桌面 推荐阅读:如何在Ubuntu 20.04/18.04上安装Unity桌面环境。 单击桌面右上角的网络管理器图标,然后单击编辑连接。 选择连接名称,然后单击齿轮图标。 选择IPv4设置选项卡,将方法从自动(DHCP)更改为仅自动(DHCP)地址,这将阻止Ubuntu系统从路由器获取DNS服务器地址。然后指定DNS服务器(127.0.0.1)。斯塔比在127.0.0.1上收听。 保存更改。然后重新启动NetworkManager,使更改生效。 sudo systemctl重新启动NetworkManager 重新连接后,再次单击网络管理器图标并选择连接信息。你可以看到你的Ubuntu系统现在使用127.0.0.1作为DNS服务器。 从命令行更改DNS服务器 只要桌面环境使用NetworkManager,就可以使用以下方法更改DNS服务器。 打开终端窗口,进入网络管理器连接配置文件目录。 cd/etc/NetworkManager/系统连接/ 然后列出系统上可用的连接名称。 ls 如你所见,我的系统上有几个连接,其中一个是有线连接。一些是无线连接,一个是VPN连接。因为我的台式计算机通过以太网电缆连接到路由器,所以我需要使用nano命令行文本编辑器编辑有线连接配置文件。 sudo nano“有线连接1” 如果您的电脑是通过Wi-fi连接的,则需要编辑无线连接配置文件。在此文件中,找到[ipv4]配置。默认情况下,它应该如下所示: [ipv4]dns搜索=方法=自动 要使系统使用Stubby,请将配置更改为以下内容。 [ipv4]dns=127.0.0.1;dns搜索=忽略自动dns=真方法=自动 要在Nano文本编辑器中保存文件,请按Ctrl+O,然后按Enter确认。按Ctrl+X退出。然后重新启动Network Manager,使更改生效。 sudo systemctl重新启动NetworkManager 现在,您可以通过运行以下命令来检查当前DNS服务器: 系统解析——状态 样本输出: 链路2(enp5s0)当前作用域:DNS LLMNR设置:是多播DNS设置:无DNSSEC设置:不支持DNSSEC:无DNS服务器:127.0.0.1 如果127.0.0.1被列为DNS服务器,那么您的系统正在使用Stubby。 忽略DHCP服务器提供的DNS设置 如果使用Ubuntu server edition,可以将systemd配置为忽略DHCP服务器提供的DNS设置,这样系统就不会意外使用错误的DNS服务器。 首先,检查网络接口的状态。 网络控制状态enp5s0 它将显示此接口的网络文件。编辑此网络文件。 sudo nano/run/systemd/network/10-netplan-enp5s0。网络 找到[DHCP]部分并添加以下行。 UseDNS=false 这样地: [DHCP]RouteMetric=100 UseMTU=true UseDNS=false 保存并关闭文件。然后重新启动systemd Networkd。为变更生效提供服务。 sudo systemctl重启systemd networkd 运行以下命令检查每个网络接口的DNS服务器。如果一切正常,您将无法看到DHCP服务器提供的DNS服务器。 解析CTL状态 网络文件中的更改可以由新的软件包更新覆盖。如果服务器使用netplan管理网络连接,还可以将netplan配置为忽略DHCP DNS设置。 sudo nano/etc/netplan/50 cloud init。亚马尔 将以下两行添加到文件中。 dhcp4覆盖:使用dns:否 这样地: 网络:ethernets:eth0:dhcp4:true dhcp4覆盖:使用dns:no可选:true set name:eth0 nameservers:search:[无效]地址:127.0.0.1版本:2 保存并关闭文件。然后应用更改。 sudo网络计划申请 如何检查DNS流量是否加密 我们可以使用WireShark监控DNS流量。从Ubuntu 20.04/18.04存储库安装WireShark。 sudo apt安装wireshark 如果您被问到“非超级用户是否应该能够捕获数据包?”,回答是的。安装后,运行以下命令将用户帐户添加到wireshark组,以便捕获数据包。 sudo adduser你的用户名wireshark 注销并重新登录以使更改生效。然后从应用程序菜单中打开WireShark,在WireShark中选择网络接口。例如,我的以太网接口名是enp5s0。然后输入端口853作为捕获过滤器。这将使WireShark仅捕获端口853上的流量,该端口是DNS通过TLS使用的端口。 单击左上角的按钮开始捕获。之后,在终端窗口中,使用dig实用程序运行以下命令来查询域名。例如,我可以查询我的域名的A记录。 挖一个利努克斯宝贝。通用域名格式 现在,您可以在WireShark中看到捕获的DNS流量。如您所见,我的DNS查询被发送到185.49.141.37、145.100.185.15和145.100.185.16,这是stubby配置文件中定义的3个默认DNS解析程序。连接是通过TCP和TLS加密的,这就是我想要的。 如果DNS查询在未加密的情况下发送,则计算机将通过端口53联系DNS服务器。您可以使用端口53作为捕获过滤器再次捕获数据包,但在WireShark中看不到任何数据包,这意味着stubby正在加密您的DNS查询。 如何将CloudFlare DNS添加到Stubby 我发现我的计算机和3个默认DNS服务器之间有很高的延迟(超过200毫秒),而CloudFlare DNS服务器(1.1.1.1、1.0.0.1)的延迟非常低(低于20毫秒)。CloudFlare还支持TLS上的DNS。要添加CloudFlare DNS服务器,请编辑stubby配置文件。 sudo nano/etc/stubby/stubby。yml 向下滚动到upstream_recursive_servers:部分,并在其他DNS服务器上方添加以下文本。 #CloudFlare服务器-地址数据:1.1.1.1 tls_认证名称:“CloudFlare dns.com”-地址数据:1.0.0.1 tls_认证名称:“CloudFlare dns.com” 然后找到以下行: 循环上游:1 将1更改为0。这将使stubby始终使用CloudFlare DNS服务器。如果CloudFlare不可用,stubby将使用其他DNS服务器。保存文件并重新启动stubby以使更改生效。 sudo systemctl重启stubby DNS over HTTPS支持 Stubby将在0.3版中支持HTTPS上的DNS。Ubuntu 20.10附带了0.2.6版。要检查Stubby版本,请运行 斯塔比V 收尾 我希望本教程能帮助你在Ubuntu20.04/18.04上使用DNS over TLS保护你的DNS隐私。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心。

    2022.03.23 浏览:308
  • 如何在Ubuntu 16.04上安装亚音速媒体服务器

    本教程将向您展示如何在Ubuntu 16.04上安装亚音速媒体服务器,以及如何使用Nginx或Apache为亚音速设置反向代理。 亚音速是一款用Java编写的基于网络的免费媒体流,可用于Linux、MacOS和Windows。使用亚音速,您可以从家用电脑或任何面向公众的电脑播放音乐,并使用网络浏览器从任何地方收听音乐。因此,您不必使用resilio sync或Syncthing等文件同步应用程序来同步音乐。 亚音速特征 支持MP3、OGG、AAC和通过HTTP传输的任何其他音频或视频格式。 适用于任何支持网络的媒体播放器,如Winamp、iTunes、XMMS、VLC、MusicMatch和Windows media player 专辑艺术展示、即时播放列表、即时转码 适用于Android、iPhone、Windows Phone的移动应用程序,以及适用于Mac、Windows和Chrome的桌面应用程序。Android应用程序支持离线播放。 收听播客、分配收视率、添加评论和创建播放列表。 与朋友和家人分享你的音乐。 流媒体视频(高级功能) 还有更多 请注意,从6.0版开始,亚音速是封闭源。 如何在Ubuntu 16.04上安装亚音速媒体服务器 亚音速媒体服务器是用Java编写的,所以您需要安装Java运行时环境来运行它。可以使用以下命令安装openjdk 8。 sudo apt安装openjdk-8-jre 如果您以前安装过Oracle Java 8,则无需安装OpenJDK。接下来,使用以下命令下载亚音速deb包,该命令将下载6.1.5版。你可以在亚音速下载页面上查看最新版本。如果有新版本,只需用新版本号替换6.1.5即可。 wgethttps://s3-eu-west-1.amazonaws.com/subsonic-public/download/subsonic-6.1.5.deb 用dpkg安装。 sudo dpkg-i亚音速-6.1.5。黛布 安装后,亚音速守护进程将自动启动。 systemctl状态亚音速 样本输出: ● 亚音速。服务-LSB:亚音速守护进程已加载:已加载(/etc/init.d/Subsonic;错误;供应商预设:已启用)活动:自2017年3月24日星期五起活动(运行)08:03:27 EDT;7分钟前文档:man:systemd sysv generator(8)CGroup:/system。切片/亚音速。服务└─3316 java-Xmx150m-dsubonic。home=/var/subsonic-Dsubsonic。主机=0 如果它没有运行,那么你可以手动启动它 sudo系统CTL启动亚音速 并在系统启动时启用自动启动。 sudo systemctl启用亚音速 默认情况下,亚音速监听0.0.0:4040,这意味着它接受来自本地网络和互联网的请求。 如果您在本地Ubuntu计算机上安装了亚音速,请在浏览器中键入以下地址以访问亚音速web界面。 http://localhost:4040 如果您在面向互联网的Ubuntu服务器上安装了亚音速,请在浏览器中键入以下地址以访问亚音速web界面。 http://your-server-ip:4040 请注意,如果您在家庭服务器上安装了亚音速媒体服务器,并且希望从外部网络访问它,则需要在路由器中配置端口转发。 默认用户名和密码为admin。登录后,您应该进入设置&gt;用户可以更改管理员密码。 在“设置”页面中添加媒体文件夹,然后单击“保存”按钮。请注意,该文件夹必须可供用户访问亚音速正在运行。添加文件夹后,单击“立即扫描媒体文件夹”按钮,您将能够在索引页中收听音乐。 改变用户 默认情况下,亚音速进程以root用户身份运行。出于安全原因,您应该将其更改为普通用户,这可以通过编辑/etc/default/subsonic文件来完成。 sudo nano/etc/默认/亚音速 找到以下行: 亚音速用户=根 将root用户更改为您自己的用户帐户,如linuxbabe。 亚音速用户=linuxbabe 保存并关闭文件。然后重新启动亚音速守护进程,使更改生效。 sudo systemctl重启亚音速 为亚音速设置Nginx反向代理 如果您想为亚音速web界面使用域名,那么可以设置Nginx反向代理。使用下面的命令在Ubuntu 16.04上安装Nginx。 sudo apt安装nginx 然后为代理创建一个服务器块文件。 sudo nano/etc/nginx/conf.d/subsonic-proxy。形态 将以下文本放入文件中。替换亚音速。你的领域。使用你自己的域名。location{…}块将向亚音速守护进程发出Nginx代理请求。别忘了为子域设置一个记录。 服务器{listen 80;服务器_namesubsonic.your-domain.com;位置/{proxy_passhttp://127.0.0.1:4040; 代理设置头主机$httpU主机;proxy_set_header X-Real-IP$remote_addr;proxy_set_header X-Forwarded-For$proxy_add_X_Forwarded_For;proxy_set_header X-Forwarded-Proto$scheme;} 保存并关闭文件。然后测试Nginx配置。 sudo nginx-t 如果测试成功,则重新加载Nginx以使新配置生效。 sudo systemctl重新加载nginx 现在,亚音速媒体服务器被置于Nginx之后,您可以使用域名(subsonic.your domain.com)访问亚音速web UI 使用Nginx启用HTTPS 要启用HTTPS安全连接,您可以从Let's Encrypt获得并安装免费的TLS/SSL证书。安装Let's Encrypt(certbot)客户端时使用: sudo apt get install软件属性公共sudo add apt repository ppa:certbot/certbot sudo apt get update sudo apt get install certbot python3 certbot nginx 然后发出以下命令,该命令使用Certbot Nginx插件自动获取并安装TLS证书。用实际数据替换红色文本。 sudo certbot--nginx--agree tos--redirect--hsts--staple ocsp--email-your-email-address--domain亚音速。你的领域。通用域名格式 几秒钟之内,您将看到如下祝贺消息,这意味着证书已成功获得。 再次转到亚音速媒体服务器Web界面,您会发现HTTP连接自动重定向到HTTPS安全连接。接下来,我们需要修改Nginx配置文件。 sudo nano/etc/nginx/conf.d/subsonic-proxy。形态 现在有两个服务器{…}块,因为Certbot自动配置了SSL服务器块(listen 443 SSL)。在SSL服务器块中,在location/{…}块中添加以下行。 代理重定向http://https://; 此行将把任何http服务器响应重定向到https服务器响应,这是正确显示亚音速设置页面所需的。保存并关闭文件。测试Nginx配置并重新加载。 sudo nginx-t sudo systemctl reload nginx 设置Apache反向代理 如果您更喜欢Apache而不是Nginx,请使用以下软件安装: sudo apt安装apache2 要使用Apache作为反向代理,我们需要启用代理模块和头模块。 sudo a2enmod代理u http头 然后为亚音速媒体服务器创建一个虚拟主机文件。 sudo nano/etc/apache2/可用站点/亚音速代理。形态 将以下配置放入该文件。替换亚音速。你的领域。com与您的实际域名。别忘了为这个子域创建DNS记录。 &lt;虚拟主机*:80&gt;服务器名亚音速。你的领域。com错误文件404/404。html DocumentRoot/var/www-ProxyPass/http://localhost:4040/ProxyPassReverse/http://localhost:4040/标题始终未设置X帧选项&lt/VirtualHost&gt; 保存并关闭文件。然后启用这个虚拟主机。 sudo a2ensite亚音速代理。形态 重新启动Apache sudo systemctl重启apache2 现在,您可以使用域名访问亚音速web UI。 使用Apache启用HTTPS 要启用HTTPS安全连接,您可以从Let's Encrypt获得并安装免费的TLS/SSL证书。安装Let's Encrypt(certbot)客户端时使用: sudo apt get install软件属性公共sudo add apt repository ppa:certbot/certbot sudo apt get update sudo apt install certbot python3 certbot apache 然后使用apache插件获取并安装证书。 sudo certbot--apache--同意tos--重定向--hsts--订书机ocsp--必须订书机--通过电子邮件发送您的电子邮件地址--d亚音速。你的领域。通用域名格式 几秒钟之内,您将看到如下祝贺消息,这意味着证书已成功获得。 您的TLS证书将自动安装。再次转到亚音速媒体服务器Web界面,您会发现HTTP连接自动重定向到HTTPS安全连接。 如何升级到最新版本 将现有的亚音速服务器升级到最新版本非常容易。首先进入亚音速下载页面,下载最新的Debian/Ubuntu软件包(本例中为6.1.2)。您可以在Firefox下载管理器中获得下载链接,如下面的屏幕截图所示。 然后在终端中,您可以在wget之后粘贴下载链接,从命令行下载亚音速。 wgethttps://s3-eu-west-1.amazonaws.com/subsonic-public/download/subsonic-6.1.2.deb 接下来,使用dpkg安装deb包。 sudo dpkg-i亚音速-6.1.2。黛布 重新启动亚音速Systemd服务,就完成了。 sudo systemctl重启亚音速 我希望本教程能帮助你在Ubuntu 16.04上安装亚音速媒体服务器。一如既往,如果你觉得这篇文章有用,那么订阅我们的免费时事通讯。你也可以在Google+、Twitter或我们的Facebook页面上关注我们。

    2022.03.23 浏览:150
  • 如何在Ubuntu上将OnlyOffice与NextCloud集成

    您可能知道,Nextcloud是一个自托管的云存储解决方案,OnlyOffice是一个自托管的在线office文档服务器。本教程将向您展示如何将OnlyOffice与Nextcloud集成,这样您就可以直接从Nextcloud web界面编辑office文档(DOCX、XLSX、PPTX等)。 Nextcloud OnlyOffice集成应用程序的功能 全功能文本编辑器可在线使用,具有桌面编辑器的所有功能。 100%的查看、转换、打印和分页保真度。 它允许您添加链接、表格、图表、插入图像、自动形状、公式、文本对象并对其进行操作,创建项目符号或编号列表。 与队友实时协同编辑:立即或仅在保存后显示更改。使用评论和内置聊天来查看和跟踪更改。 支持DOCX、XLSX、PPTX、TXT文件编辑和保存。您还可以将文件保存为其他格式,如ODT、ODS、ODP、DOC、XLS、PPT、PPS、EPUB、RTF、HTML、HTM。 与Office Open XML格式完全兼容:。docx。xlsx。pptx 自动保存您的文件,这样您就不会丢失您的工作。 支持拉丁文、CJK(中文、日文、韩文)字符。 先决条件 OnlyOffice document server至少需要2核CPU和2GB RAM。为了让它在Nextcloud中平稳运行,我建议使用一台具有4核CPU和4GB RAM的服务器。您可以从Contabo购买功能强大的VPS,成本很低。如果有很多用户,您应该考虑升级服务器规格。 Contabo仅在德国设有数据中心。如果你需要在美国托管的VPS,我推荐Turnkey Internet,它提供4核CPU、8GB RAM的VPS,价格为9.99美元/月。 要完成本指南,您需要一台运行正常的Nextcloud服务器。如果您还没有这样做,请先阅读下面的文章来设置Nextcloud服务器。 使用Nginx(LEMP堆栈)在Ubuntu18.04上安装NextCloud 然后阅读以下说明以集成OnlyOffice和Nextcloud。OnlyOffice document server和Nextcloud server可以安装在两台不同的主机上,让我们开始吧。 第一步:在Ubuntu上只安装Office Document Server 只有Office document server依赖于PostgreSQL节点。js、Redis服务器、RabbitMQ服务器和Nginx。以下步骤在Ubuntu 18.04服务器上进行了测试,但也应适用于Debian系列的Linux发行版。 从Ubuntu存储库安装PostgreSQL sudo apt安装postgresql 然后创建onlyoffice数据库。 sudo-i-u postgres psql-c“仅创建数据库办公室 创建onlyoffice用户。 sudo-i-u postgres psql-c“使用密码‘onlyoffice’创建用户onlyoffice” 准许。 sudo-i-u postgres psql-c“将数据库onlyoffice上的所有权限授予onlyoffice 注意:用户名和密码都必须是onlyoffice。 从官方存储库安装NodeJS OnlyOffice document server需要nodejs版本8.12.0+,但Ubuntu存储库中的版本已经过时,因此我们需要安装Node的最新LTS版本(12.13.1)。来自上游存储库的js。 添加节点。js报告。 curl-sLhttps://deb.nodesource.com/setup_12.x| sudo-E bash- 安装节点。js。 sudo apt安装nodejs-y 检查节点。js版本。 节点-v 样本输出: v12。13.1 安装Redis服务器和Rabbitmq sudo apt安装redis服务器rabbitmq服务器 检查他们的状态。 systemctl状态redis服务器systemctl状态rabbitmq服务器 你应该看到它们处于活动状态(正在运行)。如果rabbitmq服务器无法启动,主要是因为机器内存不足或主机名无效。Redis服务器监听127.0.0.1:6379。RabbitMQ监听0.0.0.0:25672和0.0.0.0:4369 仅安装Office文档服务器 使用以下命令添加OnlyOffice存储库。 回声“黛布”http://download.onlyoffice.com/repo/debian挤压main“| sudo tee/etc/apt/sources.list.d/onlyoffice.list 仅导入办公室公钥。 sudo apt key adv--keyserverhkp://keyserver.ubuntu.com:80--记录键CB2DE8E5 更新本地包索引并仅安装Office document server。请注意,onlyoffice documentserver包将作为依赖项安装nginx extras,因此如果Apache web服务器正在运行,则需要先停止它。 sudo apt更新sudo apt仅安装Office documentserver 在安装过程中,您将被要求为onlyoffice输入PostgreSQL密码。输入“onlyoffice”(不带双引号)。 您还需要接受Microsoft许可条款,才能从Microsoft安装TrueType core字体。 Nginx服务器块将作为/etc/Nginx/conf.d/ds安装。conf(它实际上是指向/etc/onlyoffice/documentserver/nginx/ds.conf的符号链接)。onlyoffice文档服务器是一个nodejs web应用程序,nginx充当反向代理。/var/www/onlyoffice/documentserver/是web根目录。 安装完成后,在web浏览器中输入服务器的公共IP地址,您会看到“Document server正在运行” 要检查document server的版本号,可以使用以下命令。 apt搜索Only Office documentserver 样本输出。 onlyoffice documentserver/squeeze,现在是5.4.1-39 amd64[已安装]用于文本、电子表格和演示文稿文件的在线查看器和编辑器。 步骤2:为文档服务器启用HTTPS 要将NextCloud连接到OnlyOffice document server,后者必须以HTTPS模式运行(NextCloud server和用户浏览器都需要与document server联系)。以下步骤显示如何获取并安装Let's Encrypt TLS证书。 首先,我们需要编辑OnlyOffice Nginx服务器块文件。 sudo nano/etc/nginx/conf.d/ds。形态 我们添加了一个服务器名称指令,如下所示。别忘了为onlyoffice设置DNS记录。你的领域。通用域名格式。 include/etc/nginx/includes/http common。形态;服务器{listen 0.0.0:80;listen[::]:80默认服务器;服务器令牌关闭;服务器名称onlyoffice.your-domain.com;include/etc/nginx/includes/ds-*.conf;} 保存并关闭文件。重新加载Nginx以使更改生效。 sudo systemctl重新加载nginx 然后安装certbot(让我们加密)客户端和Nginx插件。 sudo apt安装certbot python3 certbot nginx 接下来,运行以下命令,使用Nginx插件获取免费的TLS证书。 sudo certbot--nginx--agree tos--redirect--hsts--staple ocsp--email[email&#160;protected]-d only office。你的领域。通用域名格式 哪里: --nginx:使用nginx插件。 --同意:同意服务条款。 --重定向:通过301重定向强制HTTPS。 --hsts:为每个HTTP响应添加严格的传输安全头。强制浏览器始终对域使用TLS。防止SSL/TLS剥离。 --装订ocsp:启用ocsp装订。有效的OCSP响应被绑定到服务器在TLS期间提供的证书上。 几秒钟内,您将看到如下消息,这意味着TLS证书已成功获得。 参观https://onlyoffice.your-domain.com在web浏览器中验证OnlyOffice document server是否在HTTPS模式下正确运行。 步骤3:安装Nextcloud OnlyOffice集成应用程序 以管理员身份登录Nextcloud web界面,然后进入Nextcloud应用程序页面,单击Office&amp;左窗格上的文本选项卡。你会发现OnlyOffice应用程序。下载并启用它。 &nbsp; 之后,转到Nextcloud设置页面,选择左侧窗格中的ONLYOFFICE选项卡,并在文档编辑服务地址字段中输入ONLYOFFICE的域名。 保存上述设置后,您应该能够通过单击加号(+)按钮在Nextcloud中创建文档、spreedsheet和演示文稿文件。将打开一个单独的选项卡进行编辑。 在office文档的上下文菜单中,您还会看到一个名为“在OnlyOffice中打开”的新项。 在同一主机上仅安装Office Document Server和Nextcloud OnlyOffice文档服务器使用Nginx作为web服务器。 如果现有的Nextcloud服务器使用Nginx运行,那么在同一台机器上安装OnlyOffice时,Nextcloud服务器不会受到损坏。它将删除nginx core并安装nginx extras软件包,因此会有一点停机时间,但您的配置将完好无损。 如果现有的Nextcloud服务器与Apache web server一起运行,并且只想在同一台机器上安装Office,那么有两种选择: 停止/删除Apache,使用Nginx作为Nextcloud和OnlyOffice的web服务器。您可以在本教程中使用Nextcloud Nginx配置。 将Nginx配置为Apache的反向代理。 将Nginx配置为Apache的反向代理 如果选择第二个路由,那么在安装OnlyOffice document server之前,应该首先更改Apache的端口号。 编辑端口。conf文件。 sudo nano/etc/apache2/ports。形态 找到这句话: 听着80 将其更改为其他端口号,如8180。请注意,这里不应该使用8080,因为只有Office document server需要端口8080来启动其docservice。 听着8180 您还应该更改SSL端口号,因为稍后Nginx将执行SSL终止。找到这句话: 听着 将端口号更改为4433。 听着,4433 保存并关闭文件。接下来,编辑Nextcloud的虚拟主机文件。 sudo nano/etc/apache2/sites enabled/nextcloud。形态 第一行应该是这样的: &lt;虚拟主机*:80&gt; 将端口号更改为8180。 &lt;VirtualHost*:8180&gt; 我们还应该通过在下面几行之前添加注释字符来禁用将HTTP重定向到HTTPS。(你的Nextcloud服务器正在使用HTTPS连接,对吗?) #在#RewriteCond%{SERVER_NAME}=nextcloud上重写引擎。你的领域。com#RewriteRule^https://%{SERVER_NAME}%{REQUEST_URI}[END,QSA,R=permanent] 并更改SSL侦听端口。 &lt;VirtualHost*:443&gt; 将上述端口更改为4433。保存并关闭文件。重新加载Apache配置。 sudo systemctl重新加载apache2 现在Apache监听端口8180和4433。然后,我们可以按照上述说明安装OnlyOffice document server,该服务器将在此过程中安装Nginx。 安装OnlyOffice document server和Nginx后,创建一个Nginx服务器块文件,以代理对Apache的请求。 sudo nano/etc/nginx/conf.d/nextcloud-proxy。形态 将以下行添加到文件中。将域名替换为您自己的域名。ssl_证书和ssl_证书_密钥的路径用于加密已颁发的证书。如果使用另一个CA颁发的证书,则应输入自己的路径。 服务器{listen 80;server_name nextcloud.your-domain.com;返回301 https://$server_name$request_uri;}服务器{listen 443 ssl http2;server_name nextcloud.your-domain.com;ssl_certificate/etc/letsencrypt/live/nextcloud.your-domain.com/fullchain.pem;ssl_certificate_key/etc/letsencrypt/live/nextcloud.your-domain.com/privkey.pem;ssl_会话_超时1d;ssl_会话_缓存共享:ssl:10m;ssl_会话_票据关闭;ssl_协议TLSv1.1 TLSv12.添加_header Strict Transport Security max age=15768000;ssl_密码例如:ECDHE-ECDSA-ecdedededededededededededededededededededededededededededeecdsa-sa256-ECDSA-ecdedededea-aca-ecdededededededededededededededededededededededededededededededeadh-RSA-acm-acm-acm-acm-acm-acm-acm-acm-acm-acm-acm-acm-acm-acm-acm-acm-acm-acm-sasasasasawawawawawawawa256-sasasasas-ses-sasawawawawawawa256-sawa256-sas-sas-sas-sas-sas-sas-sas-sas-sas-sa8-dededea-sa8-sa8-sa8-sa8-sasa8-sa-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES256-SHA256-DES-CBC3-SHA:DES-CBC3-SHA:!DSS';ssl首选服务器上的密码;位置/{proxy_passhttp://127.0.0.1:8180; 代理设置头主机$Host;proxy_set_header X-Real-IP$remote_addr;proxy_set_header X-Forwarded-For$proxy_add_X_Forwarded_For;} 位置/{…}节将所有请求重定向到侦听端口8180的Apache web服务器。保存并关闭文件。然后测试Nginx配置。 sudo nginx-t 如果语法正常,请重新加载Nginx。 sudo systemctl重新加载nginx 现在,您应该可以像往常一样访问Nextcloud服务器,而无需在URL中添加端口号。如果使用下面的cURL命令获取HTTP头,那么应该看到前端服务器是Nginx。 卷曲-Ihttps://nextcloud.your-domain.com 样本输出: HTTP/1.1 302发现服务器:nginx/1.11.9日期:2017年3月14日星期二08:55:30 GMT内容类型:text/html;字符集=UTF-8 减少DNS和HTTPS开销 如果Nextcloud和OnlyOffice安装在同一台主机上,则Nextcloud和OnlyOffice可以在本地相互通信,而无需查询公共DNS名称和建立HTTPS连接。 首先,您需要创建在本地主机上侦听Nextcloud和OnlyOffice的Nginx服务器块。对于OnlyOffice,您可以编辑/etc/nginx/conf.d/ds。配置文件 sudo nano/etc/nginx/conf.d/ds。形态 并添加以下服务器块。请注意,此服务器块在127.0.0.1:80上侦听,并仅使用Office document server作为服务器名称。 #内部服务服务器的HTTP主机{listen 127.0.0.1:80;listen[::1]:80;仅限服务器名称办公文档服务器;服务器令牌关闭;include/etc/nginx/includes/ds-*.conf;} 保存并关闭文件。然后可以编辑Nextcloud Nginx配置文件。 sudo nano/etc/nginx/conf.d/nextcloud。形态 并添加以下服务器块。它还监听127.0.0.1:80,并使用nextcloud作为服务器名称。 服务器{listen 127.0.0.1:80;服务器_namenextcloud;#添加头以提供与安全相关的头添加_头X-Content-Type-Options nosniff;添加_头X-XSS-Protection“1;模式=块”; 添加标题X-Robots-Tag none;添加标题X-Download-Options noopen;添加_头X-允许-跨域-无策略;添加标题推荐人策略无推荐人#我发现Ubuntu上需要这个标题,但Arch Linux上不需要。添加标题X-Frame-Options“SAMEORIGIN”;#安装根目录的路径/usr/share/nginx/nextcloud/;访问_log/var/log/nginx/nextcloud。通道错误_log/var/log/nginx/nextcloud。错误位置=/机器人。txt{allow all;log_not_found off;access_log off;}#以下两条规则仅适用于用户_webfinger应用程序如果您计划使用此应用程序,请取消注释#重写^/。知名/主机元/公共。php?服务=主机元最后#重写^/。知名/主机元。json/public。php?service=host meta json#last;位置=/。著名的/carddav{return 301$scheme://$host/remote.php/dav;}位置=/。著名的/caldav{return 301$scheme://$host/remote.php/dav;}地点~/。著名/极致挑战{allow all;}#设置最大上传大小客户端u最大u正文u大小512M;fastcgi_缓冲区64 4K;#禁用gzip以避免删除ETag头gzip off;#如果您的服务器是使用ngx_pagespeed模块构建的,请取消注释。该模块目前不受支持#页面速度关闭;错误_第403页/core/templates/403。php;错误_第404页/core/templates/404。php;location/{rewrite^/index.php$uri;}位置^/(?:构建|测试|配置|库|第三方|模板|数据)/{deny all;}位置^/(?:/。|自动测试| occ |问题|独立|数据库|控制台){拒绝所有;}位置^/(?:index | remote | public | cron | core/ajax/update | status | ocs/v[12]| updater/+| ocs provider/+| core/templates/40[34])/。php(?:$|/){include fastcgi_params;fastcgi_split_path_info^(+/.php)(/.*$; fastcgi_参数SCRIPT_FILENAME$document_root$fastcgi_SCRIPT_name;fastcgi_参数路径信息$fastcgi_路径信息#避免发送两次安全头fastcgi_param modHeadersAvailable true;fastcgi_参数前控制器_激活真;fastcgi_pass unix:/run/php/php7。2-fpm。短袜fastcgi_截获_错误开启;fastcgi_请求_缓冲关闭;}位置^/(?:更新程序| ocs提供程序)(?:$|/){try_files$uri/=404;index index.php;}#为js和css文件添加缓存控制头#确保它位于PHP块位置~*/之下。(?:css | js)${try_files$uri/index.php$uri$is_args$args;add_header Cache Control“public,max age=7200”;#add header to service security-related header(它的目的是#将那些文件复制到上面的文件中)#add#header X-Content-Type-Options nosniff;add##header X-XSS-Protection“1;mode=block”; 添加标题X-Robots-Tag none;添加标题X-Download-Options noopen;添加_头X-允许-跨域-无策略;添加标题推荐人策略无推荐人;#可选:不登录资产访问权限u注销;}地点~*/。(?:svg | gif | png | html | ttf | woff | ico | jpg | jpeg)${try_files$uri/index.php$uri$is_args$args;#可选:不登录其他资产访问_注销;} 保存并关闭文件。测试Nginx配置,然后重新加载Nginx以使更改生效。 sudo nginx-t sudo systemctl reload nginx 接下来,我们需要在/etc/hosts文件中添加一个本地DNS记录,如下所示,这样服务器就可以找到onlyoffice document server和nextcloud的地址。 127.0.0.1 localhost Only Office document server nextcloud 保存并关闭文件。 我们还需要编辑Nextcloud配置。php文件。 sudo nano/usr/share/nginx/nextcloud/config/config。php 将nextcloud添加到受信任域列表中,如下所示。 “受信任的_域”=&gt;数组(0=&gt;'nextcloud.linuxbabe.com',1=&gt;'nextcloud',), 保存并关闭文件。 现在回到Nextcloud web界面设置页面,单击高级服务器设置,输入OnlyOffice document server和Nextcloud的内部地址。 http://onlyoffice-document-server/ http://nextcloud/ 点击保存按钮,你就完成了。 如何升级OnlyOffice文档服务器 当新版本的OnlyOffice document server发布时,只需使用apt软件包管理器升级到新版本。 sudo-apt更新;sudo-apt升级 请注意,新版本将覆盖/etc/nginx/conf.d/ds中的自定义设置。conf文件。我建议使用以下命令备份此文件,这样您就可以轻松地恢复自定义配置。 cat/etc/nginx/conf.d/ds。conf | sudo-tee/etc/nginx/conf.d/ds。形态备份 收尾 我希望本教程能帮助您将OnlyOffice与Nextcloud集成。一如既往,如果你觉得这篇文章有用,那么订阅我们的免费时事通讯。你也可以在Google+、Twitter或我们的Facebook页面上关注我们。

    2022.03.23 浏览:339
  • Ubuntu 20.04/18.04服务器安装OpenLiteSpeed、MariaDB和PHP8

    本教程将向您展示如何在Ubuntu 20.04/18.04上安装LOMP堆栈(OpenLiteSpeed、MariaDB和PHP8.0)。软件堆栈是捆绑在一起的一组软件工具。LOMP代表Linux、OpenLiteSpeed、MariaDB/MySQL和PHP,它们可以为动态网站和web应用程序提供动力。Linux是操作系统;OpenLiteSpeed是web服务器;MariaDB/MySQL是数据库服务器,PHP是负责生成动态网页的服务器端脚本语言。 为什么OpenLiteSpeed比Apache/Nginx更好 之前我们讨论了如何安装LAMP stack(Apache)和LEMP stack(Nginx)。我们为什么要切换到OpenLiteSpeed?因为它的性能更好。 每秒增加5倍的请求。 LSAPI允许比mod_PHP和PHP-FPM更好的PHP性能。 极低的CPU和内存占用。 HTTP/3。由于OpenLiteSpeed专注于速度,它采用新技术的速度比Nginx更快。 内置PageSpeed和ModSecurity模块。如果使用Nginx,每次升级Nginx时都必须重新编译这两个模块。 内置页面缓存与流行的web应用程序(如WordPress、Magento、Joomla、Prestashop、Opencart、Drupal、xenForo、Laravel、Shopware和MediaWiki)集成。 防DDoS连接和带宽限制。 用于静态文件的内置Brotli压缩。 基于网络的管理面板。 要求 要学习本教程,您需要在远程服务器上运行Ubuntu 20.04/18.04操作系统。 如果你正在寻找高性能的VPS(虚拟专用服务器),那么你可以去ScalaHost网站创建一个帐户。选择自我管理的Linux VPS计划。如果你选择提前12个月付款,在付款页面使用优惠券代码linuxbabe2021可以节省100美元。您可以按照下面链接的教程在ScalaHost上正确设置Linux VPS服务器。 如何在ScalaHost上创建Linux VPS服务器 如果你需要用域名设置LOMP stack,我建议你从name便宜的网站购买域名,因为价格低廉,而且可以终身免费保护whois的隐私。 步骤1:更新软件包 在安装LOMP堆栈之前,最好在Ubuntu 20.04/18.04操作系统上运行以下命令来更新存储库和软件包。 sudo-apt更新;sudo-apt升级 步骤2:安装OpenLiteSpeed Web服务器 OpenLiteSpeed不包括在默认的Ubuntu软件存储库中,所以我们必须从上游的官方存储库安装它。运行以下命令将OpenLiteSpeed存储库添加到Ubuntu系统。 wget-O-http://rpms.litespeedtech.com/debian/enable_lst_debian_repo.sh| sudo bash 上面的命令还将把OpenLiteSpeed GPG密钥导入Ubuntu系统,以便APT可以在安装期间验证包的完整性。然后使用以下软件安装OpenLiteSpeed: sudo apt安装-y openlitespeed 安装后,我们可以通过运行以下命令,使OpenLiteSpeed在启动时自动启动。 sudo systemctl启用lshttpd 然后使用以下命令启动OpenLiteSpeed: sudo systemctl启动lshttpd 现在检查它的状态。 sudo systemctl状态lshttpd 样本输出: ● lshttpd。服务-OpenLiteSpeed HTTP服务器已加载:已加载(/etc/systemd/system/lshttpd.service;已启用;供应商预置:已启用)活动:自2021-05-31 04:59:06(美国东部夏令时)周一起活动(正在运行);14分钟前主PID:7213(litespeed)CGroup:/system。切片/lshttpd。服务├─7213 openlitespeed(lshttpd-main)├─7224 openlitespeed(lscgid)├─7253 openlitespeed(lshttpd-#01)└─7254 openlitespeed(lshttpd-#02)5月31日04:59:04焦点系统[1]:启动openlitespeed HTTP服务器。。。5月31日04:59:04焦点lswsctrl[7171]:[OK]litespeed:pid=7213。5月31日04:59:06焦点系统D[1]:启动OpenLiteSpeed HTTP服务器。 “Enabled”表示启动时自动启动已启用,我们可以看到OpenLiteSpeed正在运行。如果上述命令在运行后没有立即退出。你需要按“q”键让它退出。 检查OpenLiteSpeed版本。 /usr/local/lsws/bin/openlitespeed-v 输出: LiteSpeed/1.6.21开放模块版本:modgzip 1.1缓存1.62 modinspector 1.1 uploadprogress 1.1 mod_security 1.4(构建时间:周二4月6日13:20:57 UTC 2021)模块版本:modgzip 1.1缓存1.62 modinspector 1.1 uploadprogress 1.1 mod_security 1.4 默认情况下,OpenLiteSpeed监听端口8088,我们需要让它监听端口80。使用命令行文本编辑器(如Nano)编辑主配置文件。 sudo nano/usr/local/lsws/conf/httpd_config。形态 找到下面几行 侦听器默认值{address*:8088安全0映射示例*} 把8088换成80。 侦听器默认值{address*:80安全0映射示例*} 保存并关闭文件。然后重启OpenLiteSpeed。 sudo systemctl重启lshttpd 注意:如果在服务器上运行其他web服务器,如Nginx,则需要停止它,然后重新启动OpenLiteSpeed。 sudo systemctl stop nginx 现在在浏览器地址栏中输入Ubuntu 20.04/18.04服务器的公共IP地址。您应该会看到“恭喜”网页,这意味着OpenLiteSpeed Web服务器正在正常运行。 如果连接被拒绝或未能完成,可能会有防火墙阻止对TCP端口80的传入请求。如果您使用的是iptables防火墙,则需要运行以下命令以打开TCP端口80。 sudo iptables-I输入-p tcp-dport 80-j接受 如果您使用的是UFW防火墙,则运行此命令以打开TCP端口80。 sudoufw允许http 默认情况下,OpenLiteSpeed web服务器以nobody用户和nogroup组的身份运行。默认的文档根目录是/usr/local/lsws/Example/html。 步骤3:安装MariaDB数据库服务器 MariaDB是MySQL的替代品。它是由MySQL团队的前成员开发的,他们担心Oracle可能会将MySQL变成一个封闭源代码的产品。输入以下命令在Ubuntu 20.04/18.04上安装MariaDB。 sudo apt安装mariadb服务器mariadb客户端 安装后,MariaDB服务器应自动启动。使用systemctl检查其状态。 系统控制状态 输出: ● 马里亚布。服务-MariaDB 10.3.29数据库服务器已加载:已加载(/lib/systemd/system/MariaDB.service;已启用;供应商预设:已启用)活动:自2020-04-10星期五14:19:16 UTC起活动(运行);18岁前的医生:男:mysqld(8)https://mariadb.com/kb/en/library/systemd/主PID:9161(mysqld)状态:“立即处理SQL请求…”任务:31(限制:9451)内存:64.7M CGroup:/system。切片/切片。服务└─9161/usr/sbin/mysqld 如果未运行,请使用以下命令启动: sudo systemctl启动mariadb 要使MariaDB在启动时自动启动,请运行 sudo systemctl启用mariadb 现在运行安装后安全脚本。 sudo mysql_安全安装 当它要求您输入根密码时,请按enter键,因为根密码尚未设置。然后输入y设置MariaDB服务器的根密码。 接下来,您可以按Enter键回答所有剩余的问题,这将删除匿名用户、禁用远程根登录并删除测试数据库。这一步是MariaDB数据库安全的基本要求。(请注意,Y是大写的,这意味着它是默认答案。) 默认情况下,Ubuntu上的MaraiDB包使用unix_socket对用户登录进行身份验证,这基本上意味着您可以使用操作系统的用户名和密码登录到MariaDB控制台。因此,您可以运行以下命令登录,而无需提供MariaDB root密码。 sudo mariadb-u根 要退出,快跑 出口 检查MariaDB服务器版本信息。 mariadb——版本 如您所见,我们已经安装了MariaDB 10.3.29。 mariadb版本15.1发行版10.3.29-mariadb,适用于使用readline 5.2的debian linux gnu(x86_64) 第4步:安装PHP8。0 当我们安装OpenLiteSpeed时,它会自动安装lsphp73包,这是为OpenLiteSpeed设计的PHP7.3版本。我们可以安装PHP8。使用以下命令返回0。 sudo apt安装lsphp80 lsphp80 mysql lsphp80 common lsphp80 opcache lsphp80 curl 检查版本号。 /usr/local/lsws/lsphp80/bin/php8。0-v 样本输出: PHP0.0.6(CLI)(内置:5月7日2021:15:17:48)(NTS)版权(C)PHP组ZEngine引擎V4。0.6,版权所有(c)Zend Technologies和Zend OPcache v8。0.6,版权所有(c),Zend Technologies 虽然我们只安装了5个PHP8。0包,OpenLiteSpeed PHP构建附带许多PHP模块。可以使用以下命令检查已启用的PHP模块。 /usr/local/lsws/lsphp80/bin/php8。0--模块 第5步:测试PHP 有一个phpinfo。php文件位于/usr/local/lsws/Example/html目录下,因此可以输入服务器ip地址/phpinfo。浏览器地址栏中的php要使用OpenLiteSpeed Web服务器测试php,请用实际ip替换服务器ip地址。 您应该可以看到服务器的PHP信息。这意味着PHP脚本可以在OpenLiteSpeed web服务器上正常运行。它们通过LiteSpeed API(LSAPI)连接。 恭喜!您已经在Ubuntu 20.04/18.04上成功安装了OpenLiteSpeed、MariaDB和PHP。您可以看到OpenLiteSpeed使用PHP7。3%违约。要更改PHP版本,需要使用管理面板。 第5步:配置管理面板 为管理面板设置用户名和密码。 sudo/usr/local/lsws/admin/misc/admpass。嘘 然后你可以访问管理面板https://server-ip-address:7080/login.php.默认情况下,它使用自签名的TLS证书,因此您需要在web浏览器中添加安全异常。 在Firefox中,单击高级,然后单击“接受风险并继续” 在Google Chrome中,单击继续到您的服务器ip(不安全)。 切换到PHP8。管理面板中的0 要使默认虚拟主机使用PHP8。0,首先我们需要启用PHP8。服务器级别为0。转到服务器配置-&gt;外部应用,然后单击+按钮添加新的外部应用。 选择LiteSpeed SAPI App作为类型,然后单击Next按钮。 输入以下信息: 姓名:lsphp8。0 地址:uds://tmp/lshttpd/lsphp80.sock 最大连接数:10 环境:PHP_LSAPI_CHILDREN=10 LSAPI_避免_分叉=200M 初始请求超时(秒):60 重试超时(秒):0 持续连接:是的 响应缓冲:否 命令:lsphp80/bin/lsphp 积压:100 实例:1 优先级:0 内存软限制(字节):2047M 内存硬限制(字节):2047M 工艺软限:1400 进程硬限制:1500 保存设置。然后转到虚拟主机-&gt;示例-&gt;“脚本处理程序”选项卡,然后单击+按钮添加新的脚本处理程序。 输入以下信息: 后缀:php 处理程序类型:LiteSpeed SAPI 处理程序名称:lsphp8。0 保存设置。然后单击左上角的优雅重启按钮,更改生效。现在输入服务器ip地址/phpinfo。用OpenLiteSpeed Web服务器测试php。您应该看到,默认虚拟主机现在使用的是PHP8。0 笔记 在使用OpenLiteSpeed一段时间后,我试图切换回Nginx进行测试。奇怪的是,有些PHP模块不再启用。目前尚不清楚这是否是因为OpenLiteSpeed。我必须编辑/etc/php/7.4/cli/php。ini和/etc/php/7.4/fpm/php。ini来启用缺失的模块,包括mysqlnd、mysqli、mbstring、gd、json等。 在LEMP堆栈的正常安装中,我不必编辑php。ini文件来启用PHP模块,但在这种情况下,我不得不编辑这个文件。启用所有必要模块的简单方法是运行以下两个命令: cat/etc/php/7.4/mods-available/*| sudo-tee-a/etc/php/7.4/fpm/php。ini cat/etc/php/7.4/mods available/*| sudo tee-a/etc/php/7.4/cli/php。伊尼 结束 我希望本教程能帮助您在Ubuntu 20.04/18.04 LTS上安装LOMP stack。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?

    2022.03.23 浏览:191
  • 不是所有的服务器都叫“智能服务器”

    随着云计算、大数据以及AI业务的蓬勃发展,对服务器和计算能力的需求大大增加,全球都在加速数据中心的建设,而且规模越来越大,从几万台服务器到几十万甚至上百万的规模。根据Gartner报告,2017年第4季度全球范围内服务器的收入同比增加25.7%,服务器相关的技术产业正处于高速的上升期。由于业务的快速发展,需要IT基础设施具备快速部署、快速上线及便捷管理的能力,海量服务器的管理场景将变得越来越复杂,传统运维领域面临着许多新的挑战。 服务器部署的挑战 在数据中心的扩容、迁移和整合场景中,一台新采购的服务器到正式使用需要经过装配、、调测、分配网络资源、下发配置等过程,现场人力涉及到硬件安装、软件部署和技术类运营维护人员等。这些操作大部分都需要运维人员现场手工操作,据华为公司IT部门统计,这类操作中,超过50%的故障是由人工操作引发。人工操作效率较低且容易出错,这将导致额外的人力、物力以及时间的开销。 能耗管理的挑战 根据Climate Change News的报告,2017年全球数据中心的电力消耗总量占据全球电力使用量的3%,而且预计在2025年这一比例将高达20%。另外据统计,能耗费用占数据中心OPEX(运营费用)比例高达35%,OPEX高速增长成为“全球难题”。用户对能耗管理的诉求主要体现在如何设计可靠的能耗管理策略,能够高效地节约能耗开销;以及如何有效地统计和预测能耗开销,这对数据中心的精准投资至关重要。 故障预警及诊断的挑战 传统运维模式中,运维人员主要是被动式地等待问题发生,再进行故障处理,传统运维模式下人均维护效率为50~100台。 随着数据中心规模越来越大,故障将发生地更加频繁,故障之间的关联将更加复杂,传统方式的维护效率会进一步降低。另外基于告警上报的传统维护方式是要达到严重的阈值才能上报问题,难以避免业务中断。在这样的背景下,用户级的99.95%或以上的服务质量承诺(SLA)很难保障。 面对这样的挑战,我们应该如何应对呢? Gartner于2016年提出了智能运维的概念(Algorithmic IT Operations, AIOps),AIOps的部署率在2016年低于5%,但是2019年AIOps的全球部署率将达到25%,智能运维正快速发展。AIOps运维平台拥有如下11项能力:包括历史数据管理、流数据管理、日志数据提取、网络数据提取、算法数据提取、文本和NLP文档提取、自动化模型的发现和预测、异常检测、根因分析、按需交付和软件服务交付能力等,这些能力的定义为解决上述痛点问题提供了很多针对性的解决措施,是当前数据中心管理海量服务器主要的发展方向。 ▲智能运维概况[Gartner 2016] 智能运维是一个长期演进的过程,可以看到智能运维侧重的是从海量机器数据中进行检测、预测,从被动运维变成主动运维,这种优化主要软件层面的优化,但实际上要在部署、节能以及故障管理等领域实现质的提升,软硬件的协作必不可少。 智能服务器是集成运维平台软件、BMC软件以及智能化芯片的软硬件整体解决方案。那这种软硬件整体的解决方案有什么优势呢? 相对于传统服务器和OEM模式的服务器,智能服务器具备智能化的管理功能,例如单机级别的故障预测和分析,智能能耗管理等。同时界面操作更加人性化和智能化,降低了运维人员的维护成本,提高运维体验。另外智能服务器支持维护人员在近端通过蓝牙、WiFi接入服务器运维系统,在服务器部署和故障定位排查提供了极大的便利性。 以部署和维护场景为例,智能服务器提供一键式WiFi热点按钮,维护人员到达现场后,按下WiFi热点按钮,并使用移动App扫描服务器上的条码接入服务器运维网络,快速维护服务器的框位信息及下发配置操作,或者根据移动App提供的装配和故障排查指导进行装配和维修等。 相对于智能运维,智能服务器提供了支持智能化管理功能的硬件平台,这大大丰富了智能运维的场景。在很多场景,运维人员需要手工操作的瓶颈点并不是因为有效信息在隐藏在海量数据中,而是硬件本身不支持智能化的管理。智能服务器将软硬件打通,从根本上解决一些运维场景中仅依赖软件层面无法解决的问题。同时由于硬件芯片能力的提升,服务器本身能够分担一部分智能运维能力,对服务器的管理更加及时、高效;服务器采集到的硬件信息也将更加全面,能够为运维平台产生决策提供更加可靠的参考。 对于能耗管理,智能服务器将动态CPU调频、风扇调速以及电源休眠等功能进行整合。当夜间业务负载较低时,用户将能耗模型设置成节能模式,智能服务器动态地调节CPU频率,限制功率数值,同时让部分电源进入休眠模式,进一步节约能耗。当日间业务负载较高时,用户将能耗模式设置成高性能模式,智能服务器解除CPU调频限制和电源休眠配置,同时让风扇散热使用高性能的散热规格, 节能策略的智能联动,单柜服务器有望节能10%以上。智能化的能耗管理平台还提供了机柜级能耗的智能控制,根据历史功率推荐合适的功率封顶值数值,在典型业务场景下,单柜服务器的部署密度可以提升10%以上。 智能服务器继承了智能运维现有的功能,同时为智能运维的演进提供了一个新的方向。可以预想到,通过智能服务器解决方案的实施,传统运维人员能够摆脱以往机械式、重复性和低价值的日常工作,手工操作最大限度得变为智能化的自动操作,现场运维人力的效率能够得到极大的提升。同时智能化的能耗和故障管理能力能够更好地保障对业务系统所承诺的服务质量(SLA),并且为用户更好节省运营成本。 MMCloudIDC推出日本智能服务器上架仅需十分钟!详询在线客服!

    2021.12.21 浏览:165