Вопрос или проблема
Я пытаюсь запустить 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 или в других частях вашей инфраструктуры.