Хотелось бы узнать, возможен ли следующий сценарий или нет. Кроме того, если вы думаете, что я вижу что-то не так, не стесняйтесь упомянуть об этом.
Мне нужно предложить и создать схему системной архитектуры для компании, которая сейчас управляет 3 разными серверами (разными поставщиками серверов) в 3 разных местах, и на каждом сервере размещается около 50 ++ веб-сайтов.
Итак, сейчас это так:
server1:
server2:
server3:
Server1 имеет большую базу данных MySql, которую использует любой другой сервер (server2, server3 и включенный server1) с удаленным соединением mysql.
Так,
Сервер MySQL с серверов server1:
На сервере Server1 в домене website1.com есть папка с изображениями, которые все остальные веб-сайты на серверах, включая server1, должны иметь к ним доступ.
Например:
website1.com использует файл изображения image / image1.jpg, и в то же время website2.com и website3.com используют тот же image1.jpg в качестве http://website1.com/image/image1.jpg
Кроме того, каждый веб-сайт на каждом сервере каждый раз проверяет, существует ли файл. На самом деле проверка выполняется php на стороне сервера. Они проверяют, существует ли изображение локально, используя if_file_exist()
и удаленно с if (getheaders() ==200 )
Например.
Если посетитель пытается получить доступ к website1.com, website1.com (фактически server1) проверяет if website1.com/image/image1.jpg exists
. Кроме того, если посетитель пытается получить доступ к website21.com, website21 (фактически server2) проверяет if header of http://website1.com/image/image1.jpg == 200
.
Так,
Веб-сайт website1.com/image/image1.jpg на server1 получил доступ и проверил, существует ли изображение на всех веб-сайтах:
По моему мнению,
лучший сценарий, вероятно, может быть следующим:
3 экземпляра AWS EC2 в качестве работающего сервера. 1 корзина AWS S3, в которой находятся все файлы в / image / folder. 1 база данных RDS, на которой находятся все веб-сайты, размещенные в 3 экземплярах EC2.
В таком случае,
один экземпляр EC2 может получить и проверить, существует ли файл из корзины S3, и тот же экземпляр EC2 получит данные в базе данных из RDS.
Если я прав, задержка от экземпляра EC2, чтобы проверить, существует ли файл и получить его от S3, должна быть очень низкой, потому что она должна быть «локально» через инфраструктуру AWS.
кроме того, запрос к общему RDS должен быть быстрее и безопаснее по той же причине.
Так,
если посетитель заходит на сайт website1.com
у нас будет следующее:
website1.com -> экземпляр EC1
website21.com -> экземпляр EC2
Возможен ли сценарий? Или я что-то не так вижу?
Вы видели какой-нибудь другой вариант?
Другой вариант:
Применив вместо S3 Amazon CloudFront, можно ли быстрее решить проблему?
редактировать
Проверка должна выполняться по следующим причинам:
image1.jpg - это изображение. а image1-es.jpg - это специальное изображение для конкретной страны ES (Испания).
Другими словами, сервер должен проверить, есть ли изображение, предназначенное для посетителей из ES (испания), в противном случае - сервер общего изображения.
Ваш план, скорее всего, сработает, но, вероятно, не оптимален. S3 не является файловой системой, поэтому ваши приложения, возможно, придется переписать, чтобы воспользоваться ею. Существуют программы, которые могут придать ей вид файловой системы.
Возможно, вам лучше использовать
За обслуживание файлов для конкретного региона отвечает ваше программное обеспечение и инфраструктура Amazon.