Как правильно настроить сервер nginx для работы с SonarQube?

У меня есть проблема с настройкой SonarQube вместе с Nginx. При обращении к SonarQube напрямую (без проксирования через Nginx) все работает нормально. Однако, когда я делаю запросы через Nginx, страница SonarQube застревает на загрузке с надписью "Loading...". У меня есть следующая часть конфигурации Nginx, связанная с SonarQube:

location /sonar {
    proxy_pass http://127.0.0.1:9000/;
    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;
}

Также я заметил, что некоторые GET-запросы отправляются не на "mydomain.com/sonar/...", а на "mydomain.com/...". 

Как я могу исправить эту проблему и настроить SonarQube для работы с Nginx правильно?
Изображение к вопросу
  • 13 февраля 2024 г. 10:28
Ответы на вопрос 2
Для правильной настройки сервера Nginx для работы с SonarQube вам следует внести следующие изменения в вашу конфигурацию:

1. Укажите URI настроек SonarQube после `proxy_pass`. В вашем случае это `/`.

location /sonar {
    proxy_pass http://127.0.0.1:9000/;
    ...
}

2. Добавьте слэш в конце `proxy_pass` URI для того, чтобы корректно обрабатывались запросы в SonarQube.

location /sonar {
    proxy_pass http://127.0.0.1:9000/;
    ...
}

3. Если SonarQube не настроен для обработки запросов, которые не имеют префикс `/sonar`, вам нужно настроить `proxy_redirect` для перенаправления запросов.

location /sonar {
    proxy_pass http://127.0.0.1:9000/;
    proxy_redirect http://127.0.0.1:9000/ /sonar/;
    ...
}

4. Убедитесь, что проксирующий сервер Nginx настроен для поддержки HTTP/1.1 со стороны SonarQube, добавив `proxy_http_version 1.1;` в блок `location`.

location /sonar {
    proxy_pass http://127.0.0.1:9000/;
    proxy_redirect http://127.0.0.1:9000/ /sonar/;
    proxy_http_version 1.1;
    ...
}

5. Перезапустите Nginx для применения изменений в конфигурации.

Проверьте, работает ли SonarQube с использованием Nginx после выполнения этих изменений. Если проблема не устранена, убедитесь, что SonarQube настроен для работы с проксирующим сервером и проверьте журналы ошибок Nginx и SonarQube для получения дополнительной информации об ошибке.
Переменную задайте SONAR_WEB_CONTEXT = /sonar 
У вас пути от корня различаются и proxy pass поправьте на http://127.0.0.1:9000/sonar/
Это половина проблемы, ее решение может решит и 2ю с MIME
Похожие вопросы