Проблема конфигурации Nginx для проксирования IDM

Я работал над доступом к IDM с помощью nginx , но почему-то файлы css и js не могут правильно перенаправляться. Моя конфигурация в nginx следующая:

location /idm/{

proxy_pass           https://keyrock-host:keyrock-port/;
proxy_set_header   X-Forwarded-Host    $host;
proxy_set_header    Host                $host;
proxy_set_header    X-Real-IP            $remote_addr;
proxy_set_header    X-Forwarded-For        $proxy_add_x_forwarded_for;
rewrite ^/$  $1/idm/$2 redirect;
}

Но он все еще не работает должным образом.


Обновление 1:

172.16.40.7 - - [2019-04-01T11:34:01+00:00] "GET /stylesheets/bootstrap-select.min.css HTTP/1.1" 404 564 "https://172.30.66.248/key/" "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36" "-" "0.000" "-" "-"
2019/04/01 11:34:01 [error] 15#15: *9 open() "/etc/nginx/html/javascripts/tour.js" failed (2: No such file or directory), client: 172.16.40.7, server: , request: "GET /javascripts/tour.js HTTP/1.1", host: "172.30.66.248", referrer: "https://172.30.66.248/idm/"
172.16.40.7 - - [2019-04-01T11:34:01+00:00] "GET /javascripts/tour.js HTTP/1.1" 404 564 "https://172.30.66.248/idm/" "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36" "-" "0.000" "-" "-"
2019/04/01 11:34:01 [error] 15#15: *9 open() "/etc/nginx/html/javascripts/others/see_password.js" failed (2: No such file or directory), client: 172.16.40.7, server: , request: "GET /javascripts/others/see_password.js HTTP/1.1", host: "172.30.66.248", referrer: "https://172.30.66.248/idm/"
172.16.40.7 - - [2019-04-01T11:34:01+00:00] "GET /javascripts/others/see_password.js HTTP/1.1" 404 564 "https://172.30.66.248/idm/" "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36" "-" "0.000" "-" "-"

Он показывает, что файлы не найдены: * 9 open () /etc/nginx/html/javascripts/others/see_password.js"


Update 2 : при прямом доступе к серверному приложению и наблюдении за его поведением.

URL : 172.30.66.235:3443 ---> Home Page
After Login : 172.30.66.235:3443/idm
(During Login if I click anywhere, /idm remains appended to it and after logging out.)
URL after Log out : 172.30.66.235:3443  ; similar to homepage.

Строка кода, делает то же самое:

https://github.com/ging/fiware-idm/blob/7.5.1/routes/web/index.js#L23

Или вы можете перейти по ссылке: https://account.lab.fiware.org/ (глобальный экземпляр Keyrock)

0
задан 8 April 2019 в 10:46
2 ответа

При добавлении нового блока сервера он должен выглядеть как это. Таким образом, вы перенаправляете / в то же место / вашего внутреннего сервера, просто вызывая другое имя / IP. Вы должны заменить имя в имя_сервера , а также файлы сертификатов.

server {
        server_name subdomain.example.com;
        listen 443 ssl http2;
        ssl_certificate         /etc/nginx/your_certificate.pem;
        ssl_certificate_key     /etc/nginx/your_certificate.key;

        location / {
           proxy_set_header   X-Forwarded-Host    $host;
           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_pass           https://172.30.66.235:3443;
        }
}
0
ответ дан 4 December 2019 в 15:44

Попробуйте:

location /idm/ {
   proxy_set_header   X-Forwarded-Host    $host;
   proxy_set_header    Host                $host;
   proxy_set_header    X-Real-IP            $remote_addr;
   proxy_set_header    X-Forwarded-For        $proxy_add_x_forwarded_for;
   rewrite ^/idm(/.*)$  $1 break;
   proxy_pass           https://172.30.66.235:3443;
   proxy_redirect / /idm/;
   sub_filter '="/' '="/idm/';
   sub_filter '= "/' '= "/idm/';
   sub_filter '=\'/' '=\'/idm/';
   sub_filter_once off;

}

Редактировать 1: Добавлен proxy_redirect

Редактировать 2: Добавлены параметры sub_filter

Редактировать 3: Изменен sub_filter , чтобы заменить все возможные вхождения новым местоположением.

Более удобным способом, вероятно, будет nginx_substitutions_filter и правильное регулярное выражение.

1
ответ дан 4 December 2019 в 15:44

Теги

Похожие вопросы