私は仕事柄自宅サーバを運用しています。
ただ、本格的なサーバ用マシンではなく、昔使っていたノートPCをサーバとして利用しています。

このPC、あくまでも個人用(現状公開予定もなく開発用途のみ)なので、1つのPC上でなんでもかんでも動かしているんですよ。

  • Webサーバ(Apache→nginx)+各種アプリ
  • DBサーバ(MySQL)
  • ファイルサーバ(sambaとautofs)
  • 内部DNS(unbound)
  • Jenkinsサーバ
  • Redmineサーバ
  • VNC(GUIのリモート接続用)サーバ

昔はこれにキャッシュサーバ(Redis)もありました(現在はローカルマシンで利用)。
業務でオンプレミス運用をする場合は、運用効率やセキュリティリスクを考慮して機能別にサーバを分けたほうが望ましいようです(昨今はAzureやAWSでオンプレ自体あまり見なくなりましたが…)。

私はアプリケーション開発者として仕事しているので、インフラやデザインの知識は独学で仕入れていくしかありません。

自分で挑戦してハマる

習得への一番の近道はこれしかないと思っています。