У меня есть бесплатная sh установка Artifactory 7.2.1 (на docker основе), которая работает нормально, но я хочу получить к ней доступ через прокси nginx, и это не работает. моя артефакт работает под http://192.168.211.207: 8082 / Пользовательский базовый URL установлен на: http://192.168.211.207: 8081 / артефакт ->, который перенаправляет меня на http://192.168.211.207 : 8082 /
Теперь у меня есть сервер nginx, который работает на том же сервере, также через docker.
Когда я пытаюсь получить доступ:
http://192.168.211.207 -> перенаправляет меня на https://192.168.211.207/artifactory + 502 Bad Gateway
https://192.168.211.207 -> перенаправляет меня на https://192.168.211.207/ui + 502 Bad Gateway
http://192.168.211.207/artifactory -> перенаправляет на https + 502 Bad Gateway
https://192.168.211.207/artifactory -> 502 Bad Gateway
Я не совсем понимаю, что скрывается за портом 8081, поскольку я не могу использовать его ни при каких обстоятельствах. Порт 8082 работает, но не за прокси nginx.
Вот мой docker -компонентный файл:
version: '2'
services:
artifactory:
image: docker.bintray.io/jfrog/artifactory-pro:7.2.1
container_name: artifactory
ports:
- 8081:8081
- 8082:8082
volumes:
- /data/artifactory:/var/opt/jfrog/artifactory
restart: always
ulimits:
nproc: 65535
nofile:
soft: 32000
hard: 40000
nginx:
image: docker.bintray.io/jfrog/nginx-artifactory-pro:7.2.1
container_name: nginx
ports:
- 80:80
- 443:443
depends_on:
- artifactory
links:
- artifactory
volumes:
- /data/nginx:/var/opt/jfrog/nginx
environment:
- ART_BASE_URL=http://localhost:8081/artifactory
- SSL=true
# Set SKIP_AUTO_UPDATE_CONFIG=true to disable auto loading of NGINX conf
#- SKIP_AUTO_UPDATE_CONFIG=true
restart: always
ulimits:
nproc: 65535
nofile:
soft: 32000
hard: 40000
, а вот мой nginx файл конфигурации:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_certificate /var/opt/jfrog/nginx/ssl/example.crt;
ssl_certificate_key /var/opt/jfrog/nginx/ssl/example.key;
ssl_session_cache shared:SSL:1m;
ssl_prefer_server_ciphers on;
## server configuration
server {
listen 443 ssl;
listen 80 ;
server_name ~(?<repo>.+)\.artifactory artifactory;
if ($http_x_forwarded_proto = '') {
set $http_x_forwarded_proto $scheme;
}
## Application specific logs
## access_log /var/log/nginx/artifactory-access.log timing;
## error_log /var/log/nginx/artifactory-error.log;
if ( $repo != "" ){
rewrite ^/(v1|v2)/(.*) /artifactory/api/docker/$repo/$1/$2;
}
rewrite ^/$ /ui/ redirect;
rewrite ^/ui$ /ui/ redirect;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
chunked_transfer_encoding on;
client_max_body_size 0;
location / {
proxy_read_timeout 2400s;
proxy_pass_header Server;
proxy_cookie_path ~*^/.* /;
proxy_pass http://localhost:8082;
proxy_set_header X-JFrog-Override-Base-Url $http_x_forwarded_proto://$host:$server_port;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location ~ ^/artifactory/ {
proxy_pass http://localhost:8082;
}
}
}
Я не могу понять, что я делаю здесь неправильно, но возможно что-то упустить, так как я не nginx эксперт.
Кто-то замечает проблему? У кого-нибудь есть пример файла конфигурации для nginx и артефакта 7.x?