当我要安装软件包或软件时,我可以看到客户端 | 服务器版本。实际上是什么意思?例如:
apt-get install xxxx-client
apt-get install xxxx-server
这些有什么区别?当我们需要安装应用程序或包时,我们如何分类?比方说:
如果我想安装 nginx,我只需输入 安装apt-get install nginx
,所以我们没有任何混淆。
当我在寻找 MySQL 时,如何选择我应该安装哪个版本?我对客户端和服务器感到很困惑。
当我要安装软件包或软件时,我可以看到客户端 | 服务器版本。实际上是什么意思?例如:
apt-get install xxxx-client
apt-get install xxxx-server
这些有什么区别?当我们需要安装应用程序或包时,我们如何分类?比方说:
如果我想安装 nginx,我只需输入 安装apt-get install nginx
,所以我们没有任何混淆。
当我在寻找 MySQL 时,如何选择我应该安装哪个版本?我对客户端和服务器感到很困惑。
几乎任何应用程序都可以使用分布式客户端-服务器模型制作:
在某些应用程序中,服务器和客户端都由同一个生产商制造,并被标记为一个产品的一部分——OpenSSH 或 MySQL 就是这种情况。
但是,服务器和客户端之间的协议才是真正重要的。客户端-服务器模型的力量2是任何实现该协议的软件都可以使用它(作为客户端或服务器,见下文)。为什么 Nginx(或 Apache)的生产者没有为他们的软件提供客户端?因为他们的产品是网络服务器,并且已经有很多客户端(在这种情况下称为网络浏览器)可用,比如 Firefox、Chrome 等。
回到第一组……虽然提供了 OpenSSH 的“官方”客户端,但你可以使用另一个,比如PuTTY,对吧?还有其他 MySQL 服务器实现(MariaDB和Percona Server),它们与常见的 MySQL 客户端协作,同样,不限于包提供的命令行 MySQL 客户端
mysql-client
。1对于X 服务器,资源可以是数据库 (*SQL)、网页,甚至是控制台(键盘、鼠标和显示器)。
2另一个优势是这些部件可以在不同的机器上运行——但大多数也可以在相同的机器上运行,就像它们的部署者需要的那样。
一些程序在服务器模式下可用,其他程序仅作为客户端。
nginx
是一个仅限服务器的应用程序,因此服务器/客户端的差异毫无意义(无论如何对我来说)。然而,Openssh 两者都有,即。
客户端(允许登录到远程机器或服务器),或
服务器(允许其他远程客户端登录到自己,服务器)。
正确,nginx 是一个 Web 服务器,除此之外。它为任何设置为与之通信的客户端提供内容。已经有大量设计良好的客户端用于各种用途,因此 nginx 不需要创建自己的客户端。
服务器就是数据库,它保存着所有的数据库、表和数据。它还将数据提供给任何知道如何与之通信的客户。
客户端连接到数据库。它可用于一般管理任务或远程对数据执行查询或其他功能。
如果你想打个比方,你可以把它想象成一家商店。商店(服务器)为客户提供服务,它允许他们用金钱换货。顾客(客户)进来,可以在商店里买东西。有许多不同类型的客户想做不同的事情并对不同的问题感兴趣。
我将尝试以这种方式解释它:
“服务器”为其他程序或计算机提供服务。例如:nginx 和 Apache 是 web 服务器;MySQL 和 PostgreSQL 是数据库服务器。
“客户端”使用定义的协议与服务器对话——Web 服务器的 HTTP 或 HTTPS;MySQL 和 PostgreSQL 有它们自己的、特定的协议(这里记录了 MySQL 的协议)。
当你想访问服务器时,你需要客户端。例如,在 mysql 的情况下,该协议的客户端有各种实现——在 Java、PHP 等中。还有一个 MySQL 提供的交互式客户端。
但是你不想为了获取客户端而安装整个服务器:服务器通常比客户端大;但是,更重要的是:不要安装不需要的东西——它们可能存在安全漏洞,需要保持最新。
所以:在 Ubuntu(和大多数其他 Linux 发行版)中,服务器和客户端位于不同的包中。