개발자가 코드를 작성하고 배포하는 과정에서 자주 마주치는 대표적인 오류 중 하나가 바로 '프록시 요청을 시도하는 동안 오류가 발생했습니다(An error occurred while trying to proxy request)'입니다. 이 오류는 잘못된 코드, 부적절한 IP 설정 등 다양한 원인으로 웹 서버에 프록시 요청이 거부되거나 실패할 때 나타납니다. 이번 가이드에서는 Windows PC에서 프록시 관련 문제를 진단하고 해결할 수 있는 여러 가지 방법을 자세히 소개합니다.
Windows 10에서 프록시 요청 오류를 해결하는 방법
프록시 요청 오류는 다양한 원인에서 비롯될 수 있으며, 주요 원인은 다음과 같습니다.
- 서버의 IP 버전이 올바르지 않은 경우
- 코드에 오류가 있는 경우
- webpack 프록시 설정이 잘못된 경우
- 호스트 파일(hosts file)이 손상되었거나 부적절하게 구성된 경우
- Body-Parser 미들웨어로 인해 문제가 발생한 경우
- 클라이언트 프록시 설정이 올바르지 않은 경우
아래에서 위 문제들을 하나씩 해결할 수 있는 방법을 단계별로 안내해 드립니다.
방법 1: 서버 IP 버전 확인하기
프록시 사용 시 서로 다른 IP 버전을 사용하면 이 오류가 발생할 수 있습니다. 먼저 Windows PC에서 연결하려는 Wi-Fi 네트워크의 IP 주소를 확인한 후, 서버와 프록시가 동일한 IP 버전을 사용하는지 점검해야 합니다.
1. Windows 키를 누른 뒤 명령 프롬프트(Command Prompt)를 검색하고 관리자 권한으로 실행을 클릭합니다.
2. ipconfig/all 명령어를 입력하고 Enter 키를 눌러 인터넷 연결의 IP 주소 세부 정보를 확인합니다.
3. IPv4 항목에 표시된 IP 주소를 기록해 둡니다.
서버와 프록시가 같은 IP 버전을 사용하는지 확인하세요. 많은 사용자들이 서버와 프록시의 IP 버전이 달랐고, 이를 일치시킨 후 오류가 해결되었다고 보고했습니다. Windows 10에서 IP 주소를 변경하는 방법은 별도의 가이드를 참고하세요.
IP 버전 변경으로 문제가 해결되지 않았다면 다음 방법으로 넘어가세요.
방법 2: 하위 버전 사용하기
경우에 따라 버전을 낮추면 오류가 사라질 수 있습니다. Node.js 17 버전에서 이 오류가 발생한다면 16 버전으로 낮춰보세요. Node.js 공식 웹사이트의 이전 릴리스 페이지에서 구버전을 다운로드할 수 있습니다.
버전 변경 후에도 문제가 지속된다면 다음 방법을 시도해 보세요.
방법 3: 코드 수정하기
프록시 요청 오류는 잘못 작성된 코드 때문에 발생하는 경우가 매우 흔합니다. 코드를 수정하는 것만으로도 문제를 간단히 해결할 수 있습니다.
1. 작업 중인 프로젝트를 엽니다.
2. 코드에 changeOrigin 설정을 추가하여 수정합니다.
{
"/api": {
"target": "https://localhost:12345",
"secure": false,
"changeOrigin": true
}
}많은 사용자가 changeOrigin 설정을 추가한 후 프록시 오류가 해결되었다고 합니다. 그래도 문제가 해결되지 않으면 다음 방법으로 넘어가세요.
방법 4: Webpack 프록시 설정 변경하기
webpack 프록시 설정은 프록시 요청을 다른 서버로 전달할 때 유용하게 사용되는 도구입니다. 잘못된 webpack 프록시 설정이 오류의 원인일 수 있으며, 설정을 변경하면 문제를 해결할 수 있습니다.
1. 프로젝트 디렉터리 루트에서 webpack.config.js 파일을 찾습니다.
2. 코드가 아래 형식과 일치하는지 확인합니다.
devServer: {
proxy: {
"*": "https://[::1]:8081"
// "secure": false,
// "changeOrigin": true
}
},참고: 프록시 요청 오류를 해결하려면 코드에 [::1] 값을 반드시 포함해야 합니다.
방법 5: 호스트 파일 수정하기
호스트 파일은 Windows 디렉터리에 위치한 시스템 파일로, 무단 접근으로는 열 수 없습니다. 호스트 파일 문제로 인해 오류가 발생했다면 파일을 직접 수정해야 합니다.
1. 시작 메뉴 검색창에 메모장(Notepad)을 입력하고 관리자 권한으로 실행을 클릭합니다.
2. 메모장에서 파일 탭을 클릭한 뒤 열기 옵션을 선택합니다.
3. 아래 경로로 이동합니다.
C:\Windows\System32\drivers\etc
4. 확장자 유형을 모든 파일로 선택한 후 hosts 파일을 클릭하고 열기를 누릅니다.
5. 호스트 파일에 127.0.0.1 localhost를 추가하고 저장합니다.
호스트 파일 수정은 이 문제를 해결하는 효과적인 방법입니다. 만약 효과가 없다면 다음 방법을 시도해 보세요.
방법 6: Body-parser 제거하기
많은 개발자들이 Node.js의 body-parser 미들웨어가 원인이라고 보고했습니다. body-parser는 들어오는 요청 본문을 파싱할 때 사용되지만, 때때로 프록시 요청 오류를 유발하기도 합니다. 이 경우 body-parser를 제거하면 문제를 해결할 수 있습니다.
방법 7: 클라이언트 프록시에 헤더 추가하기
클라이언트 프록시에 헤더가 누락되면 이 오류가 발생할 수 있습니다. 이 경우 헤더를 추가하여 문제를 해결해 보세요.
1. 작업 중인 프로젝트를 실행합니다.
2. 아래 형식대로 코드를 작성합니다.
module.exports = function(app) {
app.use(proxy('/api', {
target: 'https://127.0.0.1:8080/',
headers: {
"Connection": "keep-alive"
},
}));
};대부분의 경우 클라이언트 프록시에 헤더를 추가하면 프록시 오류가 해결됩니다.
자주 묻는 질문(FAQ)
Q1. 프록시 오류란 무엇인가요?
프록시 오류는 개발자가 코드 작업 중 자주 겪는 오류로, 웹 서버로의 프록시 요청이 실패했을 때 발생합니다.
Q2. 프록시 오류는 어떻게 해결하나요?
여러 가지 효과적인 방법이 있지만, 가장 먼저 코드를 점검하고 오류를 수정하는 것이 효과적입니다.
Q3. 호스트 파일은 어디에서 찾을 수 있나요?
호스트 파일은 Windows 시스템 폴더 내에 위치하며, 사용자의 승인 없이는 접근할 수 없습니다.
함께 읽으면 좋은 글:
- Windows 10 리소스 소유권 오류 해결 방법
- 이더넷 케이블이 제대로 연결되지 않음 오류 해결 방법
- USB 장치용 프록시 장치 생성 실패 오류 해결 방법
- Windows 10에서 서버 IP 주소를 찾을 수 없음 오류 해결 방법
이 가이드가 도움이 되었기를 바라며, 프록시 요청 오류를 성공적으로 해결하셨기를 바랍니다. 어떤 방법이 효과적이었는지 의견을 남겨주세요. 궁금한 점이나 제안 사항이 있다면 댓글로 알려주세요.