HTTPD なしでドメインをサーバーにポイントする

HTTPD なしでドメインをサーバーにポイントする

Oracle Cloud Free 層に VM があり、専用の IPv4 があります。このサーバーに MariaDB をインストールしました。ドメインを使用して MariaDB にアクセスするために、ドメイン名 (example.com) をそのマシンにポイントしたいのですが、たとえば PHP コード内で xxx.xxx.xxx.xxx:3306 ではなく example.com:3306 を使用するのはいかがでしょうか?

nginx/apache httpd をインストールせずにこれを実行するにはどうすればよいですか?

答え1

  1. まず、example.com の設定を制御できるものにログインします。次に、ネームサーバーを適切に設定します。ここで、サインアップして、無料の簡単なソリューションとして cloudflare を使用し、ドメインにそのネームサーバーを使用できます (たとえば、fay.ns.cloudflare.com と ara.ns.cloudflare.com が提供される場合があります)。これを行ったら、DNS レコードを追加します。cloudflare アカウントにログインし、DNS セクションで A レコード (ipv4 アドレス) を作成して、@ (サブドメインのない example.com を意味します) を xxx.xxx.xxx.xxx にポイントします。これで動作するはずです。

  2. 独自のドメインを取得してネーム サーバー関連の作業をすべて実行したくない場合は、ローカル ソリューションがあります。開発マシンに example.com を xxx.xxx.xxx.xxx に解決するように指示できます。Linux では、/etc/hosts ファイルを編集して次の行を追加することでこれを実行します。

xxx.xxx.xxx.xxx example.com

ただし、2 番目の解決策は、このような構成のマシンでのみ機能し、前の解決策のようにグローバルではないことに注意してください。

どちらの場合でも、Web サーバーをセットアップする必要はありません。DNS は Web に依存しないため、Web サーバーが存在するかどうか、アドレスが実際のサーバーに属しているかどうか、または単なるランダムな番号であるかどうかに関係なく機能します。

あなたの場合、重要なのは、ポートが外部からアクセス可能であり (ファイアウォールを適切に構成する)、ローカル (127.0.0.1:3306) だけでなく、xxx.xxx.xxx.xxx:3306 でも何かがリッスンしていることです。通常、0.0.0.0 をワイルドカードとして使用して 0.0.0.0:3306 をリッスンし、それらすべてをリッスンすることでこれを実行します。

答え2

MySQL や MariaDB を実行したりアクセスしたりするために httpd は必要ありません。同じマシンで Web サーバーを実行したくない場合は、インストールしないでください。

MySQL を外部インターフェースでリッスンするように構成する必要があります (0.0.0.0 でリッスンするように構成します)。デフォルトではループバック インターフェースになります。権限を適切に設定することを忘れないでください。

必要に応じて、ファイアウォール/セキュリティ グループでデータベースの TCP ポート (この場合は 3306) を開くと完了です。理想的には、Web サーバーのみが接続できるようにします。

答え3

MySQL を外部ネットワークに公開する場合は、セキュリティに十分注意する必要があります。

  • そのサーバーへのアクセスが制限されていることを確認してください。たとえば、パブリックインターネットからファイアウォールで保護されているなどです。
  • パブリックインターネットに接続する必要がある場合は、TLS証明書を設定し、接続時にTLS暗号化を使用します。
  • すべてのユーザーアカウントに適切な資格情報があることを確認する

関連情報