Укажите домен на сервере без HTTPD

Укажите домен на сервере без HTTPD

У меня есть виртуальная машина на Oracle Cloud Free tier и выделенный IPv4. Я установил MariaDB на этом сервере. Я хочу указать доменное имя (example.com) на эту машину, чтобы получить доступ к MariaDB с доменом, например, использовать example.com:3306 вместо xxx.xxx.xxx.xxx:3306 внутри PHP-кода?

Как это сделать без установки 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

Но имейте в виду, что второе решение работает только для машин с такой конфигурацией и не является глобальным, как предыдущее.

В любом случае вам не нужно настраивать какой-либо веб-сервер. DNS не зависит от веб-сервера, это происходит независимо от того, есть ли веб-сервер или нет, принадлежит ли адрес реальному серверу или это просто случайное число.

В вашем случае важно, чтобы порт был доступен извне (правильно настроив брандмауэр) и чтобы что-то прослушивало его не только локально (127.0.0.1:3306), но и на xxx.xxx.xxx.xxx:3306. Обычно вы делаете это, прослушивая 0.0.0.0:3306 с 0.0.0.0 в качестве подстановочного знака для прослушивания всех из них.

решение2

httpd не нужен для запуска или доступа к MySQL или MariaDB. Если вы не хотите запускать веб-сервер на той же машине, просто не устанавливайте его.

Вам нужно будет настроить MySQL для прослушивания внешнего интерфейса (настройте его для прослушивания 0.0.0.0), по умолчанию используется интерфейс loopback. Не забудьте правильно настроить разрешения.

При необходимости откройте порт TCP базы данных (в данном случае 3306) в группах брандмауэра/безопасности и все готово. В идеале разрешите подключаться к нему только вашим веб-серверам.

решение3

Если вы открываете MySQL для внешней сети, вам нужно быть очень осторожным в вопросах безопасности:

  • Убедитесь, что доступ к этому серверу ограничен, например, он защищен брандмауэром из публичного Интернета.
  • Если он должен быть в публичном Интернете, настройте сертификаты TLS и используйте шифрование TLS при подключении к нему.
  • Убедитесь, что все учетные записи пользователей имеют правильные учетные данные.

Связанный контент