У меня супер странная проблема. Я пытаюсь использовать nginx для переноса gerrit в SSL / HTTPS, и он работает только в том случае, если я позволю dev.company.com/ указать на gerrit (я бы предпочел dev.company.com/gerrit/, так как веб-сервер также должен хост другие услуги.)
Это единственное рабочее решение, которое мне удалось найти.
gerrit's etc / gerrit.config:
[gerrit]
canonicalWebUrl = https://dev.company.com/
[httpd]
listenUrl = proxy-https://127.0.0.1:8081/
(snip)
Конфигурация nginx на сайтах-доступно:
server {
listen 443 ssl;
server_name dev.company.com;
ssl on;
(ssl certificates blah blah)
location / {
proxy_pass http://127.0.0.1:8081;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
}
}
Если я перехожу на следующее:
gerrit.config:
[gerrit]
canonicalWebUrl = https://dev.company.com/gerrit/
[httpd]
listenUrl = proxy-https://127.0.0.1:8081/
(snip)
Конфигурация nginx:
server {
listen 443 ssl;
server_name dev.company.com;
ssl on;
(ssl certificates blah blah)
location /gerrit/ {
proxy_pass http://127.0.0.1:8081/;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
}
}
(Обратите внимание на косую черту на proxy_pass.)
Вещи работают, кроме запросов с экранированными символами (например,% 2F, у которых gerrit много.) Итак, gerrit, как сайт, будет работать на полпути.
Я чувствую, что этот ответ должен вести в правильном направлении, но я просто не мог заставить вещи работать.
Редактировать: я думаю это обсуждение затронет ту же ошибку.