Рейтинг:0

Обратный прокси-сервер Nginx заходит на мой сайт, но не может получить изображения

флаг cn

Я 3 дня боролся с обратным прокси-сервером Nginx, чтобы понять, что это легко. Мне нужно просто получить доступ ко многим внутренним приложениям node-red (nodeJS) из Nginx, но всегда с разными портами.

Для следующего, это мой пример:

Веб-клиент -> `https://ip_adr/1881/ui/` -> Nginx proxy_pass `http://127.0.0.1:1881/ui/` (приложение)

Бэкенд-приложение показывает изображения на http://127.0.0.1:1881/*.jpg


  1. Я реализую статический тест с помощью:
место расположения / {
        #proxy_pass http://127.0.0.1:1881;
}

https://ip_адрес/ui в моем браузере работает хорошо со всеми изображениями приложений.

  1. С переписыванием для динамического перенаправления порта с внешнего интерфейса на внутренний:

    расположение ~ ^/(?<порт>\d\d\d\d) {
    
        переписать "^/\d{4}/(.*)" /$1 break;
        proxy_pass http://127.0.0.1:$port;
    

    }

С помощью регулярного выражения я извлекаю порт из ip_adr/1881 с помощью /(?<порт>\d\d\d\d), и переписать URL без /1881 но сохраняя в конце концов /путь1/путь2/...

если я поставлю https://192.168.x.x/1881/ui/ у меня в браузере все хорошо но БЕЗ картинок.


После многих и многих тестов мой браузер не отображает никаких изображений, и журнал ошибок трассировки сообщает мне обо всех изображениях:

10.03.2022 01:01:36 [ошибка] 50065#50065: *1224 open() "/usr/share/nginx/html/schema_fire_EEU.jpg" не удалось (2: нет такого файла или каталога), клиент: 192.168 .1.29, сервер: instance3.test.fr, запрос: "GET /schema_fire_EEU.jpg HTTP/1.1", хост: "192.168.1.53", реферер: "https://192.168.1.53/1881/ui/"

Это очень невероятно, если я скажу https://192.168.x.x/1881/schema_fire_EEU.jpg, я могу отобразить это изображение !!!

Думаю, проблема со слэшем...

Кто-нибудь может мне помочь?

Хорошего дня ;-)

djdomi avatar
флаг za
Дубликат [IP-адрес обратного прокси-сервера nginx\_adr/1881 для localhost:1881 proxy\_pass](https://serverfault.com/questions/1095645/nginx-reverse-proxy-ip-adr-1881-to-localhost1881-proxy- проходят)
dinastar66 avatar
флаг cn
Извините, но не то же самое ;-)
Рейтинг:0
флаг cn

Насколько я понимаю, что вы говорите, проблема может заключаться в том, что URI, на который вы проксируете, неверен.

Если этот «https://192.168.x.x/1881/schema_fire_EEU.jpg» работает, это означает, что ваша служба предоставляет ваше изображение под «/», но правило ProxyPass не имеет «/».

Вы можете попробовать с:

ProxyPass / http://ip:порт

Хорошего дня. :)

dinastar66 avatar
флаг cn
Спасибо, но скорее ``proxy_pass http://127.0.0.1:$port/;`` ?
djdomi avatar
флаг za
ProxyPass — это синтаксис Apache, а не Nginx
dinastar66 avatar
флаг cn
Хорошо, но я больше не могу получить изображение

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.