Almost any application can be made using a distributed client-server model:
- server provides a resource1 or service,
- client uses the resource or service.
In some applications, both the server and client are made by the same producer and are branded as parts of one product – this is the case of OpenSSH or MySQL.
However, the protocol between server and client(s) is what really matters. The power2 of the client-server model is that any software implementing the protocol can use it (as both a client or server, see below). Why the producers of Nginx (or Apache) did not provide a client for their software? Because their products are web servers and there have been lots of clients (called web browsers in this case) available already, like Firefox, Chrome, etc.
Back to the first group… Although an “official” client for OpenSSH is provided, you can use another one, like PuTTY, right? And there are also alternative MySQL server implementations (MariaDB and Percona Server) which collaborate with the common MySQL clients which, again, are not limited to the command-line MySQL client provided by the package
1 The resource can be a database (*SQL), webpages or even a console (keyboard, mouse, and monitor) in the case of the X server.
2 Another advantage is that these parts can be run on different machines – but mostly also the same one, just as their deployer needs.