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

Dockerized jira 7.3.5 с проблемой базового URL обратного прокси nginx

Я столкнулся с незначительной проблемой при попытке настроить Jira 7.3.5 с использованием обратного прокси-сервера nginx в моей локальной сети. Я использую образ докера jira cptactionhank вместе с образом докера jwilder nginx-proxy. Кажется, все работает нормально, но после моего обновления до версии 7.3.5 Jira сообщает о проблеме с «базовым URL-адресом для гаджетов». При открытии раздела инструментов поддержки панели конфигурации Jira он сообщает: «JIRA не может получить доступ к себе через настроенный базовый URL-адрес». В результате гаджеты на панели управления не сообщают свои правильные имена.

Похоже, это связано с перенаправлением трафика на порт 80 через порт 8080. Когда я устанавливаю базовый URL-адрес в Jira на порт 8080, проблема исчезает, но, к сожалению, все мои URL-адреса jira будут постфиксированы с портом 8080. Я пробовал установил X_PROXY_PORT на 80 и попытался установить VIRTUAL_PORT также в моей среде создания докеров, но ничего из этого, похоже, не сильно изменилось. Я надеялся, что у кого-нибудь из присутствующих есть опыт работы с этой установкой?

Вот мой файл jira docker-compose.yml:

version: '2'

services:
  jira:
    container_name: jira
    restart: always
    image: cptactionhank/atlassian-jira-software:latest
    ports:
    - "8080:8080"
    volumes:
    - jira-data:/var/atlassian/jira
    - jira-logs-data:/opt/atlassian/jira/logs
    dns: 192.168.2.4
    expose:
    - "8080"
    hostname: jira.internal.mydomain.com
    network_mode: bridge
    environment:
    - VIRTUAL_HOST=jira.internal.mydomain.com

volumes:
  jira-data:
    external: true
  jira-logs-data:
    external: true

и вот мой файл nginx docker-compose.yml

version: '2'

services:
  nginx:
    container_name: nginx
    restart: always
    image: jwilder/nginx-proxy
    ports:
    - "80:80"
    volumes:
    - /var/run/docker.sock:/tmp/docker.sock:ro
    - /srv/nginx-proxy/my_proxy.conf:/etc/nginx/conf.d/my_proxy.conf:ro
    dns: 192.168.2.4
    network_mode: bridge

Кажется, я нашел решение проблемы. Отключение строк "expose:" 8080 "и" hostname: jira.internal.mydomain.com "в моем файле jira docker-compose, похоже, гарантирует, что вся маршрутизация выполняется должным образом. Я установил базовый URL-адрес jira только на http://jira.internal.mydomain.com и вроде все работает правильно.

Итак, у вас есть jira, прослушивающая порт 8080 и порт маршрутизации nginx с 80 по 8080? Это правильно?

Похоже, jira не использует прокси для общения с самим собой. Я предполагаю, что это потому, что он пытается неправильный IP-адрес, а прокси не прослушивает этот адрес. Это легко проверить с помощью ss -tln или netstat -tln.

Надеюсь, что это поможет - Дилан

Обновить:

Ха, похоже, у вас что-то слушает порт 8080 и что-то слушает порт 8005, но ничего не слушает порт 80. Это заставляет меня думать, что nginx настроен неправильно. Или вы публикуете порт 8005 как порт 80 вне контейнера? Это может вызвать проблему, потому что порт 80 внутри контейнера не является чем-то особенным. Я думаю, вы могли бы настроить простое правило переадресации в iptables в контейнере, чтобы перенаправить порт 80 на порт 8005 локально. Это, вероятно, исправит это. Или просто поместите nginx на порт 80 и опубликуйте его как порт 80.