[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/errors/general/error-occurred-while-trying-to-proxy-request":3,"mdc-vvqqo7-key":572,"mdc--8ig0rn-key":583,"mdc-ga24yh-key":591,"mdc-kmwhh4-key":615,"mdc--y1ysa2-key":623,"mdc-ov3x1b-key":631,"mdc-lay8he-key":639,"related-/errors/general/connection-refused-econnrefused,/guides/general/nginx-reverse-proxy-configuration,/guides/general/webpack-vite-proxy-setup":647},{"id":4,"title":5,"appliesTo":6,"author":11,"body":12,"canonical":509,"code":510,"createdAt":511,"description":512,"difficulty":513,"draft":514,"estimatedTime":515,"extension":516,"faq":517,"howToSteps":527,"howToTotalTime":540,"image":509,"keywords":541,"locale":550,"meta":551,"navigation":552,"path":553,"platform":554,"related":555,"section":559,"seo":560,"severity":561,"stem":562,"summary":563,"tags":564,"twitterCreator":509,"twitterSite":509,"type":570,"updatedAt":511,"__hash__":571},"content_ru/errors/general/error-occurred-while-trying-to-proxy-request.md","Ошибка прокси запроса: причины и пошаговое исправление",[7,8,9,10],"Node.js / Webpack Dev Server / Vite","Nginx / Apache (Reverse Proxy)","Docker Compose / Контейнерные сети","Любые HTTP-клиенты и API-шлюзы","FixPedia Team",{"type":13,"value":14,"toc":498},"minimark",[15,20,37,41,72,76,81,84,89,132,145,158,162,165,173,256,269,272,276,283,291,387,405,409,412,431,459,467,471,494],[16,17,19],"h2",{"id":18},"что-означает-ошибка-econnrefused","Что означает ошибка ECONNREFUSED",[21,22,23,24,28,29,32,33,36],"p",{},"Текст ошибки обычно выглядит так: ",[25,26,27],"code",{},"[HPM] Error occurred while trying to proxy request: /api/data"," или ",[25,30,31],{},"Error occurred while trying to proxy request to http://localhost:3000",". Она означает, что ваш прокси-сервер (часто это ",[25,34,35],{},"webpack-dev-server",", Vite, Nginx или API-шлюз) попытался перенаправить запрос к целевому бэкенду, но операционная система отклонила попытку подключения. Прокси не получает HTTP-ответ, потому что на сетевом уровне соединение не было установлено. Это останавливает разработку, так как фронтенд не может получить данные от API, и требует немедленной настройки маршрутизации или проверки сетевых служб.",[16,38,40],{"id":39},"причины-возникновения","Причины возникновения",[42,43,44,48,55,58,69],"ol",{},[45,46,47],"li",{},"Не запущен или аварийно завершился целевой сервер (Node.js, Python, Go-микросервис).",[45,49,50,51,54],{},"Указан неверный порт, IP-адрес или опечатка в конфигурационном файле ",[25,52,53],{},"target",".",[45,56,57],{},"Локальный брандмауэр или антивирус блокирует исходящие соединения на нестандартные порты.",[45,59,60,61,64,65,68],{},"Конфликт протоколов: прокси пытается подключиться по ",[25,62,63],{},"https",", а целевой сервер слушает только ",[25,66,67],{},"http"," (или не настроен самоподписанный сертификат).",[45,70,71],{},"Ошибки маршрутизации в Docker-сетях: контейнеры находятся в разных виртуальных сетях и не видят друг друга по имени сервиса.",[16,73,75],{"id":74},"способы-решения","Способы решения",[77,78,80],"h3",{"id":79},"способ-1-проверка-доступности-целевого-сервера","Способ 1: Проверка доступности целевого сервера",[21,82,83],{},"Первым делом убедитесь, что сервис, к которому вы проксируете запросы, действительно работает и доступен.",[42,85,86],{},[45,87,88],{},"Откройте терминал и выполните команду:",[90,91,96],"pre",{"className":92,"code":93,"language":94,"meta":95,"style":95},"language-bash shiki shiki-themes github-light github-dark","curl -v http://localhost:\u003CВАШ_ПОРТ>/\n","bash","",[25,97,98],{"__ignoreMap":95},[99,100,103,107,111,115,119,122,126,129],"span",{"class":101,"line":102},"line",1,[99,104,106],{"class":105},"sScJk","curl",[99,108,110],{"class":109},"sj4cs"," -v",[99,112,114],{"class":113},"sZZnC"," http://localhost:",[99,116,118],{"class":117},"szBVR","\u003C",[99,120,121],{"class":113},"ВАШ_ПОР",[99,123,125],{"class":124},"sVt8B","Т",[99,127,128],{"class":117},">",[99,130,131],{"class":113},"/\n",[42,133,135,142],{"start":134},2,[45,136,137,138,141],{},"Если в ответе вы видите ",[25,139,140],{},"Connection refused",", значит процесс не запущен или слушает другой интерфейс (например, только IPv6).",[45,143,144],{},"Запустите бэкенд заново и проверьте логи на наличие ошибок при старте.",[146,147,148],"blockquote",{},[21,149,150,151,28,154,157],{},"💡 Совет: Используйте ",[25,152,153],{},"netstat -tuln",[25,155,156],{},"lsof -i :\u003Cпорт>",", чтобы точно увидеть, на каком адресе и порту слушает ваш процесс.",[77,159,161],{"id":160},"способ-2-корректировка-конфигурации-прокси","Способ 2: Корректировка конфигурации прокси",[21,163,164],{},"Если сервер работает, но ошибка сохраняется, проверьте настройки маршрутизации в вашем инструменте разработки или веб-сервере.",[21,166,167,168,172],{},"Для ",[169,170,171],"strong",{},"Webpack Dev Server / Create React App",":",[90,174,178],{"className":175,"code":176,"language":177,"meta":95,"style":95},"language-javascript shiki shiki-themes github-light github-dark","// webpack.config.js или config файла devServer\nmodule.exports = {\n  devServer: {\n    proxy: {\n      '/api': {\n        target: 'http://localhost:8080',\n        changeOrigin: true,              // Подменяет Host в заголовке запроса\n        secure: false,                   // Отключает проверку SSL для локальной разработки\n        logLevel: 'debug'                // Включает детальный вывод в консоль\n      }\n    }\n  }\n};\n","javascript",[25,179,180,185,190,196,202,208,214,220,226,232,238,244,250],{"__ignoreMap":95},[99,181,182],{"class":101,"line":102},[99,183,184],{},"// webpack.config.js или config файла devServer\n",[99,186,187],{"class":101,"line":134},[99,188,189],{},"module.exports = {\n",[99,191,193],{"class":101,"line":192},3,[99,194,195],{},"  devServer: {\n",[99,197,199],{"class":101,"line":198},4,[99,200,201],{},"    proxy: {\n",[99,203,205],{"class":101,"line":204},5,[99,206,207],{},"      '/api': {\n",[99,209,211],{"class":101,"line":210},6,[99,212,213],{},"        target: 'http://localhost:8080',\n",[99,215,217],{"class":101,"line":216},7,[99,218,219],{},"        changeOrigin: true,              // Подменяет Host в заголовке запроса\n",[99,221,223],{"class":101,"line":222},8,[99,224,225],{},"        secure: false,                   // Отключает проверку SSL для локальной разработки\n",[99,227,229],{"class":101,"line":228},9,[99,230,231],{},"        logLevel: 'debug'                // Включает детальный вывод в консоль\n",[99,233,235],{"class":101,"line":234},10,[99,236,237],{},"      }\n",[99,239,241],{"class":101,"line":240},11,[99,242,243],{},"    }\n",[99,245,247],{"class":101,"line":246},12,[99,248,249],{},"  }\n",[99,251,253],{"class":101,"line":252},13,[99,254,255],{},"};\n",[146,257,258],{},[21,259,260,261,264,265,268],{},"⚠️ Важно: Параметр ",[25,262,263],{},"changeOrigin: true"," обязателен, если целевой сервер проверяет заголовок ",[25,266,267],{},"Host",". Без него многие фреймворки сбрасывают соединение из соображений безопасности.",[270,271],"in-article-ad",{},[77,273,275],{"id":274},"способ-3-настройка-docker-сетей-и-алиасов","Способ 3: Настройка Docker-сетей и алиасов",[21,277,278,279,282],{},"Если вы разрабатываете в контейнерах, ",[25,280,281],{},"localhost"," внутри одного контейнера не указывает на хост-машину или другие контейнеры.",[42,284,285],{},[45,286,287,288,172],{},"Убедитесь, что оба сервиса находятся в одной сети в ",[25,289,290],{},"docker-compose.yml",[90,292,296],{"className":293,"code":294,"language":295,"meta":95,"style":95},"language-yaml shiki shiki-themes github-light github-dark","services:\n  frontend:\n    environment:\n      - PROXY_TARGET=http://backend:3000\n    networks:\n      - app_net\n  backend:\n    networks:\n      - app_net\nnetworks:\n  app_net:\n    driver: bridge\n","yaml",[25,297,298,307,314,321,329,336,343,350,356,362,369,376],{"__ignoreMap":95},[99,299,300,304],{"class":101,"line":102},[99,301,303],{"class":302},"s9eBZ","services",[99,305,306],{"class":124},":\n",[99,308,309,312],{"class":101,"line":134},[99,310,311],{"class":302},"  frontend",[99,313,306],{"class":124},[99,315,316,319],{"class":101,"line":192},[99,317,318],{"class":302},"    environment",[99,320,306],{"class":124},[99,322,323,326],{"class":101,"line":198},[99,324,325],{"class":124},"      - ",[99,327,328],{"class":113},"PROXY_TARGET=http://backend:3000\n",[99,330,331,334],{"class":101,"line":204},[99,332,333],{"class":302},"    networks",[99,335,306],{"class":124},[99,337,338,340],{"class":101,"line":210},[99,339,325],{"class":124},[99,341,342],{"class":113},"app_net\n",[99,344,345,348],{"class":101,"line":216},[99,346,347],{"class":302},"  backend",[99,349,306],{"class":124},[99,351,352,354],{"class":101,"line":222},[99,353,333],{"class":302},[99,355,306],{"class":124},[99,357,358,360],{"class":101,"line":228},[99,359,325],{"class":124},[99,361,342],{"class":113},[99,363,364,367],{"class":101,"line":234},[99,365,366],{"class":302},"networks",[99,368,306],{"class":124},[99,370,371,374],{"class":101,"line":240},[99,372,373],{"class":302},"  app_net",[99,375,306],{"class":124},[99,377,378,381,384],{"class":101,"line":246},[99,379,380],{"class":302},"    driver",[99,382,383],{"class":124},": ",[99,385,386],{"class":113},"bridge\n",[42,388,389,399],{"start":134},[45,390,391,392,394,395,398],{},"В конфигурации прокси замените ",[25,393,281],{}," на имя сервиса (",[25,396,397],{},"backend","). Docker DNS автоматически резолвит его во внутренний IP.",[45,400,401,402,54],{},"Пересоберите и запустите стеки командой ",[25,403,404],{},"docker compose up -d --build",[77,406,408],{"id":407},"способ-4-отключение-файрвола-или-добавление-правил","Способ 4: Отключение файрвола или добавление правил",[21,410,411],{},"В некоторых ОС входящие/исходящие соединения на нестандартных портах блокируются по умолчанию политиками безопасности.",[42,413,414,417,424],{},[45,415,416],{},"Откройте настройки брандмауэра вашей операционной системы.",[45,418,419,420,423],{},"Добавьте разрешающее правило для порта бэкенда (например, ",[25,421,422],{},"TCP 3000",").",[45,425,426,427,430],{},"Если используете ",[25,428,429],{},"ufw"," на Linux, выполните:",[90,432,434],{"className":92,"code":433,"language":94,"meta":95,"style":95},"sudo ufw allow 3000/tcp\nsudo ufw reload\n",[25,435,436,450],{"__ignoreMap":95},[99,437,438,441,444,447],{"class":101,"line":102},[99,439,440],{"class":105},"sudo",[99,442,443],{"class":113}," ufw",[99,445,446],{"class":113}," allow",[99,448,449],{"class":113}," 3000/tcp\n",[99,451,452,454,456],{"class":101,"line":134},[99,453,440],{"class":105},[99,455,443],{"class":113},[99,457,458],{"class":113}," reload\n",[42,460,461],{"start":198},[45,462,463,464,54],{},"Перезапустите прокси-сервер и проверьте соединение. Для Windows Defender Firewall используйте PowerShell: ",[25,465,466],{},"New-NetFirewallRule -DisplayName \"Allow Backend Proxy\" -Direction Inbound -LocalPort 3000 -Protocol TCP -Action Allow",[16,468,470],{"id":469},"профилактика","Профилактика",[21,472,473,474,477,478,481,482,485,486,489,490,493],{},"Чтобы избежать повторения сбоя в будущем, внедрите несколько простых практик в рабочий процесс. Всегда используйте переменные окружения (",[25,475,476],{},".env",") для хранения адресов прокси, а не хардкодьте URL в конфигурационных файлах. Это позволит быстро менять эндпоинты при развёртывании на разных серверах без риска опечаток. Настройте автоматический перезапуск прокси при изменении конфигов с помощью ",[25,479,480],{},"nodemon"," или встроенных ",[25,483,484],{},"watch"," режимов. Регулярно обновляйте пакеты ",[25,487,488],{},"http-proxy-middleware"," и аналоги, так как в новых версиях исправляются проблемы с обработкой ",[25,491,492],{},"Keep-Alive",", WebSocket-соединений и таймаутов.",[495,496,497],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}",{"title":95,"searchDepth":134,"depth":134,"links":499},[500,501,502,508],{"id":18,"depth":134,"text":19},{"id":39,"depth":134,"text":40},{"id":74,"depth":134,"text":75,"children":503},[504,505,506,507],{"id":79,"depth":192,"text":80},{"id":160,"depth":192,"text":161},{"id":274,"depth":192,"text":275},{"id":407,"depth":192,"text":408},{"id":469,"depth":134,"text":470},null,"ECONNREFUSED","2026-04-02 20:56:21","Столкнулись с 'error occurred while trying to proxy request'? Разберём причины и проверенные способы решения за 10 минут. Настройте стабильный прокси.","easy",false,"10-15 мин","md",[518,521,524],{"question":519,"answer":520},"Почему появляется ошибка при проксировании локального сервера?","Чаще всего целевой сервер выключен, заблокирован брандмауэром или указан неверный порт. Прокси не может установить TCP-соединение и возвращает сбой.",{"question":522,"answer":523},"Влияет ли эта ошибка на работу сайта в продакшене?","Нет. Ошибка характерна для сред разработки или промежуточных шлюзов. В продакшене используются настроенные балансировщики с автоматическим мониторингом здоровья узлов.",{"question":525,"answer":526},"Что делать, если бэкенд работает, но прокси всё равно падает?","Проверьте настройки CORS, заголовки `Host` и `Origin`, а также убедитесь, что SSL/TLS не конфликтует с протоколом прокси (http vs https).",[528,531,534,537],{"name":529,"text":530},"Проверка доступности целевого сервера","Убедитесь, что бэкенд запущен и отвечает на указанном порту с помощью curl или браузера.",{"name":532,"text":533},"Корректировка конфигурации прокси","Проверьте параметры target, changeOrigin и secure в вашем конфиге (webpack, vite, nginx).",{"name":535,"text":536},"Настройка Docker-сетей и алиасов","Для контейнеров замените localhost на имя сервиса и убедитесь, что они находятся в одной bridge-сети.",{"name":538,"text":539},"Отключение файрвола или добавление правил","Разрешите входящие/исходящие соединения на нужный порт в настройках ОС или брандмауэра.","PT15M",[542,543,544,545,546,547,548,549],"error occurred while trying to proxy request","ошибка прокси запроса","HPM error proxy request","502 Bad Gateway proxy","настройка devServer proxy","обратный прокси ошибка подключения","исправить ошибку прокси сервера","ECONNREFUSED proxy error","ru_RU",{},true,"/errors/general/error-occurred-while-trying-to-proxy-request","general",[556,557,558],"/errors/general/connection-refused-econnrefused","/guides/general/nginx-reverse-proxy-configuration","/guides/general/webpack-vite-proxy-setup","Ошибки разработки и серверов",{"title":5,"description":512},"medium","errors/general/error-occurred-while-trying-to-proxy-request","Эта ошибка блокирует работу локальных серверов и обратных прокси. Вы получите чёткие инструкции по диагностике и устранению сбоя за несколько шагов.",[565,67,566,567,568,569],"proxy","devserver","troubleshooting","веб-разработка","сетевые ошибки","error","m20uQuebyahc1EYz71JAlgUF0iygujggWGLhJWyKqU0",{"data":573,"body":574},{},{"type":575,"children":576},"root",[577],{"type":578,"tag":21,"props":579,"children":580},"element",{},[581],{"type":582,"value":520},"text",{"data":584,"body":585},{},{"type":575,"children":586},[587],{"type":578,"tag":21,"props":588,"children":589},{},[590],{"type":582,"value":523},{"data":592,"body":593},{},{"type":575,"children":594},[595],{"type":578,"tag":21,"props":596,"children":597},{},[598,600,605,607,613],{"type":582,"value":599},"Проверьте настройки CORS, заголовки ",{"type":578,"tag":25,"props":601,"children":603},{"className":602},[],[604],{"type":582,"value":267},{"type":582,"value":606}," и ",{"type":578,"tag":25,"props":608,"children":610},{"className":609},[],[611],{"type":582,"value":612},"Origin",{"type":582,"value":614},", а также убедитесь, что SSL/TLS не конфликтует с протоколом прокси (http vs https).",{"data":616,"body":617},{},{"type":575,"children":618},[619],{"type":578,"tag":21,"props":620,"children":621},{},[622],{"type":582,"value":530},{"data":624,"body":625},{},{"type":575,"children":626},[627],{"type":578,"tag":21,"props":628,"children":629},{},[630],{"type":582,"value":533},{"data":632,"body":633},{},{"type":575,"children":634},[635],{"type":578,"tag":21,"props":636,"children":637},{},[638],{"type":582,"value":536},{"data":640,"body":641},{},{"type":575,"children":642},[643],{"type":578,"tag":21,"props":644,"children":645},{},[646],{"type":582,"value":539},[]]