News:

UNIX прост. Но надо быть гением, чтобы понять его простоту. Деннис Ритчи

Main Menu

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

Started by sbrain, 02 April 2020, 15:56

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

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

Quote from: STALKER_SLX on 02 April 2020, 20:39sbrain, ну Вы хоть конфиги приложите сюда...
мы ведь пока не телепаты - читать чужих мыслей еще не научились :)

простите простите=))

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;

}
}

Уваров А.С.

Quote from: sbrain on 02 April 2020, 15:56и в целом я знаю почему...

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

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

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

Т.е. вы принудительно меняете часть URL запроса и потом удивляетесь что получается 404.

Quote from: sbrain on 02 April 2020, 15:56вопрос...как это можно побороть?

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

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