Я использую сервер debian (jessie, 64-разрядный) с установленными nginx, jira и bitbucket. URL называется "www.example.com"
Сначала установил jira, открыл сайт установки (http://example.com:8080
) и закончил установку.
После этого я создал виртуальный хост "jira.example.com" в / etc / nginx / sites-available и создал соответствующую символическую ссылку в / etc / nginx / sites-enabled:
server {
listen 80;
server_name jira.example.com;
location / {
proxy_pass http://localhost:8080/;
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;
}
}
это отлично работает. Когда я открываю http://jira.example.com
это приводит меня к моей панели управления jira.
Затем я установил битбакет и открыл страницу настройки на http://example.com:7990
который тоже работает.
Затем я решил создать еще один виртуальный хост с именем bitbucket.example.com:
server {
listen 80;
server_name bitbucket.example.com;
location / {
proxy_pass http://localhost:7990/;
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;
}
}
но этот не работает, тогда как jira работает полностью нормально.
Когда я редактировал include /etc/nginx/sites-enabled/*;
-строка в nginx.conf для include /etc/nginx/sites-enabled/*.*;
он перенаправляет каждый http://example.com/*
к http://example.com:7990
поэтому я думаю, что я как-то неправильно сконфигурировал nginx.
У тебя есть /
в конце proxy_pass
заявление. Это означает, что все URI заменяются на /
при передаче прокси. Например, http://bitbucket.example.com/testing
будет проксирован на http://localhost:7990/
.
Я не знаю точно, как эти приложения используют URL-адреса, но я думаю, что они ожидают полного URI.
Это означает, что вам нужно использовать proxy_pass http://localhost:7990;
в вашей конфигурации без косой черты в конце.
Если http://example.com:7990
не работает, очевидно, что nginx-proxy тоже не работает. Пробовать netstat -anp | grep 7990
чтобы узнать, прослушивает ли битбакет соединения. Если нет, исправьте битбакет, а не nginx.