Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Сетевые Технологии > Транзит файла от одного сервера через другой сервер к клиенту.


Автор: Jiro 30.10.24, 08:30
Ситуация такая: представьте себе что есть два сервера (S1 и S2) + Клиет. На сервере S1 физически хранятся файлы, а на сервере S2 пусто.
Клиент обращается к серверу S2 с запросом какого-то файла, а сервер S2 запрашивает этот файл с сервера S1, и по мере того как данные передаются от S1 к S2 эти данные от S2 отдаются клиенту и не сохраняются на S2. В итоге получается, что клиент получил Файл хранящийся на сервере S1 через сервер S2, при этом клиент не знает о сервере S1, а на сервере S2 файла нету.

Вот мне нужно решение для реализации такого сервера S2.
Я не знаю как такой вид серверов называется, и нужен совет куда копать.

Автор: macomics 30.10.24, 10:11
Смотрите в сторону настройки http/https прокси.

https://nginx.org/ru/docs/http/ngx_http_pro...le.html#example

Автор: Majestio 30.10.24, 11:52
Так, еще мои 5 копеек ... Если файл очень большой, то нужно обеспечить параллельное получение файла прокси сервером и параллельную отдачу клиенту скачанного. Для этого потребуются дополнительные настройки. Что-то типа:

<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    server {
        listen 80;
        location / {
            proxy_pass http://localhost:8000;                            # Тут нужен реальный адрес S1
            proxy_set_header Host $host;                                 #
            proxy_set_header X-Real-IP $remote_addr;                     #
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #
            proxy_buffering off;                                         # Отключение буферизации
            proxy_http_version 1.1;                                      # Использование HTTP/1.1 для поддержки chunked transfer
            proxy_set_header Connection "";                              # Отключаем заголовок Connection
        }
    }

Но лучше конечно самостоятельно RTFM :)

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)