У меня есть настройка сервера jira во внутренней сети без DNS для обслуживания по локальной сети. Поэтому после многих попыток я не могу понять, как решить проблему. Я использую самоподписанный сертификат.
Клиент из локальной внутренней сети HTTPS => возвращает прокси nginx => JIRA на Docker.
Моя конфигурация:
Docker -compose. xml
jiraserver:
container_name: jiraserver
depends_on:
- postgresql
image: atlassian/jira-software:latest
volumes:
- jiradata:/var/atlassian/jira
hostname: jira.internal.com
environment:
- "ATL_PROXY_NAME=jira.backbox.com"
- "ATL_PROXY_PORT=443"
- "ATL_TOMCAT_SCHEME=https"
- "ATL_TOMCAT_SECURE=true"
- "ATL_JDBC_URL=jdbc:postgresql://jiradb.internal:5432/jiradb"
- "ATL_JDBC_USER=jiradb"
- "ATL_JDBC_PASSWORD=Strong"
- "ATL_DB_DRIVER=org.postgresql.Driver"
- "ATL_DB_TYPE=postgres72"
networks:
infrastructure:
aliases:
- jira.internal
proxyserver:
container_name: proxyserver
build:
context: ./proxyserver/config/
ports:
- "80:80"
- "443:443"
networks:
- infrastructure
Конфигурация Jira: /opt/atlassian/jira/conf/server.xml
<Connector port="8080"
maxThreads="100"
minSpareThreads="10"
connectionTimeout="20000"
enableLookups="false"
protocol="HTTP/1.1"
redirectPort="8443"
acceptCount="10"
secure="true"
scheme="https"
proxyName="jira.internal.com"
proxyPort="443"
relaxedPathChars="[]|"
relaxedQueryChars="[]|{}^\`"<>"
bindOnInit="false"
maxHttpHeaderSize="8192"
useBodyEncodingForURI="true"
disableUploadTimeout="true" />
Nginx реверс конфигурации прокси:
server {
listen 80;
server_name jira.internal.com www.jira.internal.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name jira.internal.com www.jira.internal.com;
ssl_certificate /etc/ssl/certs/jira-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/jira-selfsigned.key;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://jira.internal:8080;
client_max_body_size 10M;
}
}
Журнал /var/atlassian/application-data/jira/log/atlassian-jira.log:
HealthCheck:thread-7 ERROR [c.a.t.j.healthcheck.support.GadgetFeedUrlHealthCheck] An error occurred when performing the Gadget feed URL healthcheck
org.apache.http.conn.HttpHostConnectException: Connect to jira.internal.com:443 [jira.internal.com/docker_ip] failed: Connection refused (Connection refused)
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:156)
Я понимаю, что Джира пытается разрешить себя из docker но я не понимаю, почему он использует порт 443. На самом деле я указываю proxy_pass на порт 8080, а не 443. Как я могу разрешить jira.internal.com из самого docker? Спасибо за помощь.