Обратный прокси-сервер
Пользователи могут развернуть собственный обратный прокси-сервер, который перенаправляет запросы к Immich. Таким образом, обратный прокси-сервер может обрабатывать завершение TLS, балансировку нагрузки или другие расширенные функции. Все обратные прокси-серверы между Immich и пользователем должны перенаправлять все заголовки и устанавливать заголовки Host
, X-Real-IP
, X-Forwarded-Proto
и X-Forwarded-For
в соответствующие значения. Кроме того, ваш обратный прокси-сервер должен поддерживать достаточно большие загрузки. Следуя этим рекомендациям, вы обеспечите полную совместимость всех пользовательских прокси-серверов с Immich.
Страница восстановления может загружаться долго. Чтобы избежать тайм-аутов или ошибок сервера, мы рекомендуем указать тайм-аут как минимум 10 минут на вашем прокси-сервере.
Immich не поддерживает размещение на подкаталоге, таком как location /immich {
. Он должен быть размещен на корневом пути (под)домена.
Пример конфигурации Nginx
Ниже приведен пример конфигурации для nginx. Убедитесь, что параметр public_url
установлен на URL, который виден извне, а парам етр backend_url
— на путь к серверу Immich.
server {
server_name <public_url>;
# разрешить загрузку крупных файлов
client_max_body_size 50000M;
# Установить заголовки
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_set_header X-Forwarded-Proto $scheme;
# включить вебсокеты: http://nginx.org/en/docs/http/websocket.html
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
# указать тайм-аут
proxy_read_timeout 600s;
proxy_send_timeout 600s;
send_timeout 600s;
location / {
proxy_pass http://<backend_url>:2283;
}
}
Совместимость с Let's Encrypt
Если ваша конфигурация nginx включает раздел для Let's Encrypt, вероятно, у вас есть сегмент, похожий на следующий:
location ~ /.well-known {
...
}
Этот конкретный директив location
может случайно препятствовать мобильным клиентам к доступу по пути /.well-known/immich
, что крайне важно для обнаружения. Обычное со общение об ошибке в этом случае: "Major версия вашего приложения не совместима с сервером". Чтобы исправить это, следует добавить дополнительный блок location специально для этого пути, который будет правильно проксировать запросы на сервер Immich:
location = /.well-known/immich {
proxy_pass http://<backend_url>:2283;
}
Таким образом, вы сохраните функциональность Let's Encrypt и позволите мобильным клиентам получить доступ к необходимому пути Immich без препятствий.