Назад | Перейти на главную страницу

URL-маршрутизация для доменов

У меня есть сайт с десятками тысяч пользователей. У каждого пользователя есть собственный сайт, размещенный мной на поддомене mysite.com/user1 или в качестве дополнительного домена на user1.mysite.com или user1.com. Все это делается в чистом стеке LAMP.

Когда я только начинал, каждому пользователю требовались индивидуальные модификации своего сайта, поэтому я создал отдельные каталоги для каждого пользователя. Некоторое время назад я прекратил вносить эти индивидуальные изменения, и теперь у меня есть тысячи каталогов с одинаковыми точными скриптами php. Единственная разница между этими каталогами - это один файл с идентификатором пользователя, который я использую, чтобы получить их параметры настройки из своей базы данных.

Чтобы консолидировать свой код, я хочу создать правило .htaccess, которое присваивает часть URL-адреса (если запрашиваемый URL-адрес - это mysite.com/user, получите user1, если это user2.mysite.com, захватите user2, если это user3.com захватите user3) и передайте его скрипту php, который вызовет мою базу данных и вернет идентификатор пользователя, соответствующий этому домену. Затем я могу передать этот идентификатор в общий каталог сценариев, который позаботится обо всем остальном. Обратной стороной этого является то, что теперь мне нужно делать дополнительный запрос для каждого отдельного запроса.

Вызов базы данных для каждого запроса создает слишком большую нагрузку на мою базу данных? Как это делают другие сайты, такие как facebook или linkedin? Когда я захожу на myname.facebook.com, есть ли вызов базы данных перед обслуживанием моей страницы. Есть ли лучшая стратегия?