27 апреля 2024, 18:56

Цитата дня:

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


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, а затем тот, который у вас получится в ходе проксирования, сделать выводы и внести нужные изменения в конфигурацию.

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


Вверх