Автоматически размещать контент при определенных серверах имен - PullRequest
0 голосов
/ 24 мая 2018

По сути, это, вероятно, невероятно общий и плохо продуманный вопрос.Я заранее прошу прощения за это и надеюсь, что вы можете забыть об этом и потенциально предложить некоторые решения / помощь.

Я смотрю на начало нового проекта, который, я думаю, в некотором роде похож на Shopify.Пользователи будут платить ежемесячную плату, а затем получат свой собственный веб-сайт, на котором есть вещи в стиле магазина.

Я доволен большинством аспектов, как это сделать, однако, с одной стороны, я не совсем уверен, каксделать, если они хотят иметь собственный домен (который, как я предполагаю, большинство клиентов будет).Исходя из моего опыта работы с такими сервисами, как Spotify и Tictail, для этого мне нужно будет заставить их сменить свои серверы имен на мои серверы имен.После этого я не совсем уверен, как он будет работать и как его настроить.Все файлы для сайтов будут примерно одинаковыми, поэтому мне не нужно ничего менять там.

Так что в основном мой основной вопрос заключается в том, как мне разработать его для автоматического размещения определенного контента.когда кто-то устанавливает свои серверы имен в качестве моих серверов имен?Я хотел бы, чтобы он был полностью автоматическим, если это возможно, но я не против, если есть небольшой ручной ввод.

Мне очень жаль, если вопрос не сформулирован должным образом, или если он сбивает с толку, так как яникогда не разрабатывал что-то подобное.Простая точка в правильном направлении была бы очень признательна, так как я не очень уверен, с чего начать.

Спасибо

1 Ответ

0 голосов
/ 24 мая 2018

Это зависит от серверной технологии, которую вы используете для предоставления таких пользовательских серверов имен.Если я вас правильно понимаю, вы ищете что-то вроде:

# Your service runs here:
http://yourdomain.com

# For the user account (user specific application)
http://{unique_username}.yourdomain.com/

# Then you would have (for N users)
http://username0.yourdomain.com/
http://username1.yourdomain.com/
...
http://usernameN.yourdomain.com/

Чтобы избежать перехвата DNS, вам нужно указать сервер имен в конфигурации хоста сервера.Существует множество серверов, которые предоставляют конфигурации виртуальных хостов, позволяющие использовать разные доменные имена в одном и том же IP-адресе.

Например, в nginx это можно сделать с помощью виртуальных хостов.В вашем случае вам нужно их программно создавать.Для этого необходимо добавить файл в папку /etc/nginx/sites-available.Это может быть файл с именем: /etc/nginx/sites-available/username0 с таким содержимым:

server {
  listen 80 
  server_name username0.yourdomain.com;
  root /path/to/app/;
  ...
}

Таким образом, для вашего решения вы должны создать файл для каждого пользователя.Чтобы активировать новый созданный виртуальный хост (блок сервера), свяжите его в папке с путем: /etc/nginx/sites-enabled

ln -s /etc/nginx/sites-avaible/username1 /etc/nginx/sites-enabled/username1
sudo service nginx reload

Подробнее о перехвате DNS здесь и посмотрите нареализации виртуальных хостов, например серверные блоки nginx , показанные выше, или виртуальные хосты apache .

Удачи!

...