Рейтинг:0

Лучшая практика для обслуживания статических файлов для Интернета

флаг cn

Я пытаюсь построить следующую инфраструктуру.

  • Сервер 1 — Сервер БД
  • 2 — Веб-сервер для размещения самого веб-приложения Сервер
  • 3 — Веб-сервер для обслуживания статических файлов веб-приложений (таких как изображения продуктов, css, js и т. д.), чтобы уменьшить нагрузку на сервер 2 для статического контента и позволить ему обрабатывать только динамическую часть.

Я пытаюсь избежать объектного хранилища, такого как AWS S3 или DO Spaces, поскольку меня это не очень интересует, так какое серверное программное обеспечение я должен использовать на сервере 3, чтобы выполнить его задачу в хорошем смысле с точки зрения производительности?

Спасибо

флаг ru
Рекомендации по программному обеспечению, как правило, оффтопичны, потому что они в значительной степени основаны на мнении. У меня есть некоторые идеи на этот счет, но если вы собираетесь делать динамический контент, вам действительно нужен полноценный кэширующий CDN, а не просто еще один «сервер» для статических ресурсов. Потому что в противном случае вам нужно будет настроить свой сайт с *множественными* доменными взаимодействиями на стороне кода веб-сайта - статические ресурсы в одном домене, остальные в обычном домене.
Adrian George avatar
флаг cn
@ThomasWard Да. Я могу легко настроить часть ADMIN веб-сайта для управления файлами на удаленном сервере (Server 3), а часть CLIENT для обслуживания файлов из поддомена, такого как assets.domain.com. Меня не очень интересует CDN, потому что пользователи сайта находятся в одной стране. Но поверх assets.domain.com я бы использовал CDN, например Cloudflare.
флаг ru
Тогда игнорируя пункты 1 и 2, потому что вы, кажется, поняли, как ваш *сайт* хочет, чтобы вы обращались со статическими активами? Интеграция в стиле S3? (подсказка: существуют бесплатные решения для самостоятельного хранения в стиле S3!) Прямой SFTP/FTP/SSH? То, как вы настроите *этот* сервер статических ресурсов, будет полностью зависеть от вашего сайта и того, что он может принять и обработать.
Adrian George avatar
флаг cn
@ThomasWard Меня не интересовало хранилище в стиле S3. Файловый менеджер ADMIN (Сервер 4) будет запрограммирован для загрузки файлов и управления ими непосредственно на Сервере 3, который несет единоличную ответственность за хранение файлов и их обслуживание. Идея состоит в том, что веб-серверы должны быть Apache из-за некоторых специфических вещей, которые требуются приложению (сервер 2 и 4, администратор и клиент). Но файловые серверы, которые я выбрал для NGINX, кажется, обслуживают файлы намного лучше, чем Apache, и здесь я застрял на этом решении. И мне было любопытно, есть ли другие альтернативы Nginx/Apache (кроме Lightspeed)
флаг ru
Apache и NGINX — два основных. Есть lighttpd и другие, но доля рынка принадлежит APache и NGINX.
Adrian George avatar
флаг cn
@ThomasWard, это ясно. Но с точки зрения архитектуры и выбора хранения статических файлов в субдомене на другом сервере, считаете ли вы, что это хорошая практика и полезная с точки зрения производительности в целом? Во-вторых, я думаю, что это помогло бы мне легко сбалансировать нагрузку клиентского приложения, создав несколько веб-серверов с балансировщиком нагрузки, без необходимости реплицировать все статические файлы с помощью сервера/клиента NFS.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.