Назад | Перейти на главную страницу

Nginx блокирует порты

Я использую сервер 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.