postMan으로 테스트를 하는 과정에서 오류가 발생했다.

사유는 400번 에러, 요청에서의 오류였다.

 

로그를 살펴보면 logIn의 자료형을 바꿀 수 없다는 설명이 나온다. logIn은 uri인데 이상하게 변수로 인식을 하고 있다.

그 이유는 바로 나의 요청이 POST 방식임에도 불구하고 GET 방식으로 받아들여 uri를 path variable로 인식하고 있는 것이다.

나의 코드에서 결괏값은 int이다. 따라서 string 값인 logIn에 int인 결괏값을 넣을 수 없다고 말하고 있는 것이다.

 

MDN 문서를 살펴보면 http redirection에서 301포트는 메소드가 GET으로 변경될 가능성이 있으며, 308은 메소드와 바디가 변화하지 않는다 고 한다.

 

즉, 우리는 이 문제를 해결하기 위해 301 포트를 308로 변경해주면 된다.

cd /etc/nginx/sites-available
sudo vim {nginx 설정 파일명}

 

위와 같이 301 포트를 308로 변경해준 뒤, nginx를 재가동하고 코드를 다시 실행하면 에러가 해결된다.

반응형

'Server' 카테고리의 다른 글

[Spring Boot] gradle build :compilejava에서 멈추는 현상  (0) 2022.09.01
[Nginx] proxy pass 설정  (0) 2022.09.01

spring boot를 설치하고 ./gradlew clean build 코드로 빌드가 되지 않았다. compilejava에서 멈추는 현상이 발생했다.

나는 ec2를 사용해 서버를 구축했기 때문에 우선 ec2 인스턴스 중지 후 다시 가동시켜주었다. 이후 여러 방법을 시도해 보았고 해결이 됐던 방법을 아래에 적는다.

 

해결책은 바로 스왑이다. swap이란 메모리 즉, RAM이 부족할 때, 남는 HDD를 RAM으로 사용하는 것이다.ec2 프리티어의 경우 주어진 메모리의 양이 적어 빌드시나 다른 작업을 할 때 자주 에러가 난다. 이때마다 ec2를 재가동 시켜주어야 하고 작업 수행도 되지 않으니 스왑을 해주어야한다.스왑하는 방법은 공식 사이트에도 잘 나와있다.https://aws.amazon.com/ko/premiumsupport/knowledge-center/ec2-memory-swap-file/

 

스왑 파일을 사용하여 Amazon EC2 인스턴스의 스왑 공간으로 메모리 할당

1.    dd 명령을 사용하여 루트 파일 시스템에 스왑 파일을 생성합니다. 명령에서 bs는 블록 크기이고 count는 블록 수입니다. 스왑 파일의 크기는 dd 명령의 블록 크기 옵션에 블록 수 옵션을 곱

aws.amazon.com

주의 사항은 스왑 공간은 절대로 32MB 미만이 되지 않아야 한다.

sudo dd if=/dev/zero of=/swapfile bs=128M count=16
 위와 같이 설정할 경우 스왑 공간은 128MB x 16 = 2GB가 된다.

sudo chmod 600 /swapfile
 스왑 파일의 읽기 및 쓰기 권한 업데이트

sudo mkswap /swapfile
 Linux 스왑 영역 설정

sudo swapon /swapfile
 스왑 공간에 스왑 파일을 추가하여 스왑 파일 즉시 사용 가능
 
sudo swapon -s
 프로시저가 성공적인지 확인
 
sudo vi /etc/fstab
 /etc/fstab 파일을 편집하여 부팅 시 스왑 파일을 시작하도록 한다.

 

스왑 파일은 아래와 같이 마지막에 /swapfile swap swap defaults 0 0 코드를 추가해준다.

 

이로써 스왑 설정이 마무리됐다.

 

sudo ./gradlew clean build 를 실행해 빌드를 시도해보면 잘되는 것을 확인할 수 있다.

 

반응형

'Server' 카테고리의 다른 글

[POSTMAN] - POST 요청 시 GET 방식으로 인식 오류  (0) 2022.09.02
[Nginx] proxy pass 설정  (0) 2022.09.01

spring boot를 ec2에 올린 뒤 postman에서 테스트해보았으나, 잘되지 않았다.

우선 postman에서 도메인으로 접속할 때는 포트번호를 붙이지 않는다. 따라서 nginx 기본 설정 포트로 들어가게 된다.

 

이를 수정해주어야 한다.

cd /etc/nginx/sites-available
sudo vim [설정 파일 이름]

 

위와 같이 location 블록 안에 $uri/ =404; 코드를 주석 처리해주고

밑에 proxy_pass http://localhost:[원하는 포트 번호]; 코드를 추가해준다.

 

이렇게 하면 postman에서도 잘 작동되는 것을 알 수 있다.

 

proxy pass를 하지 않아도 웹 브라우저에서 실행 시 포트번호를 붙이면 잘 동작한다. 하지만 이

를 통해 포트번호를 일일이 써야하는 불편함을 해소할 수 있다.

반응형

+ Recent posts