Переадресация PUT в Nginx?

Вопрос или проблема

Я пытаюсь запустить Docker Compose, который называется Janitorr. https://github.com/Schaka/janitorr

У меня есть проблема на форуме с автором, и кажется, что на стороне моего сервера происходят какие-то перенаправления.
https://github.com/Schaka/janitorr/issues/75 Я действительно не знаю, что мне делать..

Я запускаю nginx через Swizzin. Мои знания по nginx почти нулевые..

Это файл конфигурации nginx sonarr.conf

location /sonarr {
proxy_pass http://127.0.0.1:8989;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
auth_basic "Какой пароль?";
auth_basic_user_file /etc/htpasswd.d/htpasswd.rickardfransson;

}

Разрешить внешний доступ к API через NGINX

location /sonarr/api {
auth_basic off;
proxy_pass http://127.0.0.1:8989;
}

Разрешить внешний доступ к календарной ленте через NGINX

location ^~ /sonarr/feed/calendar {
auth_basic off;
proxy_pass http://127.0.0.1:8989;
}

Ответ или решение

Для решения проблемы с редиректом PUT-запросов в конфигурации Nginx, вам необходимо убедиться, что он корректно обрабатывает такие запросы и передает их на внутренний сервис, например, Sonarr, без изменений.

Давайте разберем вашу текущую конфигурацию и внесем необходимые изменения.

1. Проверка конфигурации

Ваш файл конфигурации Nginx для Sonarr выглядит следующим образом:

location /sonarr {
    proxy_pass http://127.0.0.1:8989;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_redirect off;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $http_connection;
    auth_basic "What's the password?";
    auth_basic_user_file /etc/htpasswd.d/htpasswd.rickardfransson;
}

2. Рекомендации по исправлению конфигурации

Чтобы исправить возможные проблемы с PUT-запросами и избежать неожиданных редиректов, можно сделать следующее:

  • Убедитесь, что параметры proxy_redirect и auth_basic не мешают обработке PUT-запросов.
  • Проверьте правильность proxy_pass — если внутренний API ожидает определённый URL, он должен совпадать с тем, что у вас указано.

Вот обновлённая конфигурация:

server {
    listen 80;
    server_name your_server_name;  # Убедитесь, что здесь указано ваше доменное имя.

    location /sonarr {
        proxy_pass http://127.0.0.1:8989;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_redirect http://127.0.0.1:8989/ /sonarr/;  # Добавляем редирект
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        # Убедитесь, что аутентификация отключена для API Sonarr
        auth_basic "What's the password?";
        auth_basic_user_file /etc/htpasswd.d/htpasswd.rickardfransson;
    }

    location /sonarr/api {
        auth_basic off;  # Отключаем аутентификацию для API
        proxy_pass http://127.0.0.1:8989/api;  # Убедитесь, что путь к API правильный
    }

    location ^~ /sonarr/feed/calendar {
        auth_basic off;  # Отключаем аутентификацию для календаря
        proxy_pass http://127.0.0.1:8989/feed/calendar;  # Убедитесь, что путь правильный
    }
}

3. Дополнительные рекомендации

  • Проверьте логи Nginx (обычно находятся в /var/log/nginx/error.log и /var/log/nginx/access.log) для получения дополнительной информации о том, что происходит с запросами.
  • Убедитесь, что на сервере Sonarr нет настроек, ограничивающих доступ к API или реагирующих на измененные пути.

4. Перезапуск Nginx

После внесения изменений в конфигурационный файл Nginx, не забудьте перезапустить веб-сервер, чтобы применить изменения:

sudo nginx -t  # Проверка синтаксиса конфигурационных файлов
sudo systemctl restart nginx  # Перезапуск Nginx

Заключение

С помощью этих изменений ваш Nginx должен корректно обрабатывать PUT-запросы и не перенаправлять их неправильно. Если проблема все еще сохраняется, дальнейшее исследование необходимо провести на стороне сервера Sonarr или в других частях вашей инфраструктуры.

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

Капча загружается...