29 марта 2024, 00:26

Цитата дня:

Праздник нужно всегда носить с собой. Эрнест Хемингуэй


nginx не загружаются JSON 404(not found)

Автор sbrain, 02 апреля 2020, 15:56

« предыдущая тема - следующая тема »

0 Пользователей и 1 Гость просматривают эту тему.

Вниз

sbrain

Всем привет!

столкнулся с такой проблемой

есть домен 1с.domain.ru
он ссылается на nginx
там настроен proxy_pass на http://1с.domain.ru/DEMO/ru_RU (Это публикация 1С)

при переходе на 1c.domain.ru открывается интерфейс 1С ки
но вконсоли разработчика куча ошибок о том что файлы стилей,png.json не могут загрузиться по причине того что 404 (not found)

и в целом я знаю почему...

все потому что эти файлы пытаются загрузиться по адресу http://1с.domain.ru/DEMO/ru_RU который с внешки не доступен. (приложил скриншотик)

вопрос...как это можно побороть?
Варинт проксировать просто на 1с,domain.ru не подходит так как в таком случает будут доступны остальные базы опубликованные на этом IIS.






STALKER_SLX

sbrain, ну Вы хоть конфиги приложите сюда...
мы ведь пока не телепаты - читать чужих мыслей еще не научились :)

sbrain

sbrain, ну Вы хоть конфиги приложите сюда...
мы ведь пока не телепаты - читать чужих мыслей еще не научились :)
простите простите=))

server {
        listen 80;
#       listen 443;
        server_name demo.domain.org;
        root /var/www/html;

location / {
        proxy_pass http://demo.domain.org/DEMO/ru_RU/;
        proxy_read_timeout 60s;
        proxy_send_timeout 60s;
        proxy_connect_timeout 60s;

        client_max_body_size 10024M;
}


        error_page  500 502 503 504  /50x.html;
        location = /50x.html {
        root  /usr/share/nginx/html;

}
}

Уваров А.С.

и в целом я знаю почему...
Совершенно верно, также верно то, что так не делается. Разобраться в вашей путанице с доменными именами практически нереально, но это половина беды.

Открываем и читаем документацию https://nginx.org/ru/docs/http/ngx_http_proxy_module.html

Цитировать
Если директива proxy_pass указана с URI, то при передаче запроса серверу часть нормализованного URI запроса, соответствующая location, заменяется на URI, указанный в директиве:
Т.е. вы принудительно меняете часть URL запроса и потом удивляетесь что получается 404.

вопрос...как это можно побороть?
Наверное можно, но для этого надо для каждого такого случая проанализировать исходный URL, а затем тот, который у вас получится в ходе проксирования, сделать выводы и внести нужные изменения в конфигурацию.

Проще поднять еще один веб-сервер и опубликовать там только нужную базу. Можно сделать это на виртуалке или даже в контейнере.


Вверх