Я пытаюсь создать Sonarqube на виртуальной машине Ubuntu с помощью Vagrant и Nginx. Я выполнил все шаги, но когда я пытаюсь получить доступ, я получаю 502 BadGateway
и проверяя журналы, я получаю следующее:
2020/01/29 18:44:05 [alert] 1205#1205: 768 worker_connections are not enough
2020/01/29 18:44:05 [error] 1205#1205: *2090 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 127.0.0.1, server: sonarqube.developerinsider.co, request: "GET /favicon.ico HTTP/1.0", upstream: "
Это конфигурация, которая у меня есть для сайта:
upstream sonar {
server 127.0.0.1:9000;
}
server{
listen 9000;
server_name sonarqube.developerinsider.co;
access_log /var/log/nginx/sonar.access.log;
error_log /var/log/nginx/sonar.error.log;
proxy_buffers 16 64k;
proxy_buffer_size 128k;
location / {
proxy_pass http://127.0.0.1:9000;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_redirect off;
}
}
Это мой бродячий файл:
Vagrant.configure("2") do |config|
config.vm.box = "generic/ubuntu1804"
config.vm.box_check_update = true
config.vm.network "private_network", ip: "XXX.XX.XX.XX"
config.vm.network "forwarded_port", guest: 80, host: 8081, host_ip: "127.0.0.1"
config.vm.hostname = "tracker.tlc.vm"
config.vm.provider "virtualbox" do |vb|
vb.memory = "4096"
end
end
Однако я могу получить доступ к Jenkins, который у меня есть, и к сайту по умолчанию Nginx. Я пытаюсь получить доступ, используя следующий IP-адрес: http://XXX.XX.XX.XX:9000/
В учебник, который вы цитируете содержит опечатку. В Nginx конфигурация должна выглядеть так
server {
listen 80;
...
location / {
proxy_pass http://127.0.0.1:9000;
...
}
}
Сюда nginx будет доступно под http://<server's IP>/
, а Sonarqube под http://<server's IP>:9000/
. Кстати Sonarqube не запущен на вашем сервере, иначе nginx не мог использовать порт 9000
.
Что сейчас происходит: когда приходит запрос, nginx пересылает запрос в 127.0.0.1:9000
, т.е. себя. Это вызывает бесконечный цикл переадресации, который заканчивается, когда nginx не хватает рабочих, чтобы справиться с ними.
Вы должны сообщить об опечатке автору руководства.