0
0 Комментариев

Существует система, архитектура которой на момент разработки выглядело следующим образом:

                                      +--------+
                               http   | server |
                             <------> +--------+
                                      | nginx  |
                                      | uwsgi  |
                                      | django |
                                      |   db   |
                                      +--------+

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

                http   +-------+       +-------+       +-------+
              <------> | nginx | <---> |  app  | <---> |  db   |
                       +-------+       +-------+       +-------+
                                       | uwsgi |
                                       | django|
                                       +-------+

Появилась проблема с загрузкой изображений, а точнее в отдаче изображения пользователю после загрузки, так как nginx из коробки не умеет лезть в файловую систему другого сервера. В связи с этим появились две идеи, как решить данную проблему:

  • При помощи samba создать общую папку между nginx и app, в которую django будет загружать изображения, и из которой nginx будет их тянуть при запросе;
  • Использовать FileWrapper, чтобы app умел сам отдавать изображения на запрос от nginx.
  • Поставить на app ПО для выдачи загруженных изображений: nginx или apache.

Можете привести аргументы, какое из данных решений лучше использовать, либо привести свое решение?


Добавить комментарий