Конфигурация NGINX для сохранения URL при перенаправлении прокси с nexus 3 на nexus 2 для использования плагина unzip - PullRequest
0 голосов
/ 15 мая 2019

Я перешел на Nexus 3 с Nexus 2.Но тогда возникает проблема, что nexus 3 не поддерживает плагин Unzip.Таким образом, обходной путь, который я нашел, состоял в том, чтобы развернуть контейнер Nexus 2 и прокси-сервер всех репозиториев распаковать в Nexus 2.Затем создайте ссылку для перенаправления, когда URL-адрес оканчивается на «.zip-unzip», который он перенаправляет на nexus 2. Это можно сделать в конфигурации nginx.И это также должно сохранить URL-адрес nexus3, но отобразить страницу nexus2.

Я попытался сделать это, определив блок местоположения с помощью регулярного выражения, чтобы сопоставить URL-адреса, заканчивающиеся на «.zip-unzip», и прокси-проход дляnexus2.Но это не похоже на работу.Я также не уверен, как сделать так, чтобы nexus 2 также был зашифрован ssl одновременно.

server {

listen 443 ssl;
server_name mt-nexus.psi-mt.de;
ssl_session_cache   shared:SSL:10m;
ssl_session_timeout 10m;
ssl_certificate /etc/nginx/conf.d/server.crt;
ssl_certificate_key /etc/nginx/conf.d/server.key;
include /etc/nginx/custom-errors.conf;  

client_max_body_size 1G;

    location / {
    proxy_pass http://nexus3:8081;
    proxy_set_header  Host  $http_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 https;
    proxy_read_timeout  900;        


}

location ~ ^"/nexus/(?<section>.+).zip-unzip$" {

proxy_pass http://nexus2:8081/$section.zip-unzip;
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 "https";

}       
}

Я ожидаю, что когда URL "https://nexus3.xyz.com/nexus/content/repositories/Releases_Unzip/xxx.zip-unzip" будетпереданный, он перенаправляет на ссылку URL-адреса Nexus 2 "https://nexus2.xyz.com/nexus/content/repositories/Releases_Unzip/xxx.zip-unzip", но URL-адрес Nexus 3 сохраняется, т.е. https://nexus3.xyz.com/...

1 Ответ

0 голосов
/ 23 мая 2019

Проблема решена мной. Вы должны будете использовать блок местоположения, но блок местоположения не поддерживает использование "$" при использовании прохода прокси. Таким образом, вам придется использовать переписать внутри блока местоположения, как это.

location ~ .zip-unzip/ {
            rewrite ^/nexus/(.*)$ /nexus/$1 break;
            proxy_pass http://nexus4unzip:8081;
            proxy_set_header Host $http_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 https;

        }
...