목록IT 에러경험 (8)
지석이의 일기

조용히 java 프로젝트 운영중 갑자기 로그인이 안된다는 소식을 듣게됨. 로그인 해보니 자꾸 로그인 페이지로 튕기는 현상이 발견. A페이지(로그인 페이지): 로그인정보 받음. B로 FORMSUBMIT함. B페이지: A정보를 기반으로 AUTH체크후 session.setAttribute("UserInfo", sessionMap); 함. 이후, 유저 페이지로 전환되어야 하는데, A페이지로 전환됨.당연히 유저페이지에서 유저 세션 체크 후 유저 세션이 없으니 A페이지로 전환되는 현상 확인. 세션이 유지 되지 않는 점을 확인. 그리하여 아래와 같은 원인 분석에 나섬1. session.setAttribute 이후 try catch 로 session 정보가 날아간걸까?==> 페이지 리다이렉션 직전에 session.g..

웹 개발을 하다 보면 프론트엔드와 백엔드 간의 통신에서 CORS(Cross-Origin Resource Sharing) 문제를 자주 마주하게 됨. 특히 Axios를 사용해 Spring Boot 서버와 통신할 때, CORS 설정이 올바르지 않으면 요청이 차단되곤 함.CORS란 무엇인가?CORS는 웹 브라우저에서 서로 다른 출처 간의 리소스 요청을 제어하는 보안 기능임. 기본적으로 브라우저는 다른 출처의 리소스에 대한 요청을 제한함으로써, 악의적인 사이트에서 사용자의 정보를 탈취하는 것을 방지함. 하지만 개발 중에는 이 제한이 불편할 수 있음.CORS 문제 발생 원인Axios를 통해 Spring Boot 서버에 요청을 보낼 때, Authorization과 같은 사용자 정의 헤더를 포함하면 브라우저는 프리플라..

cerbot renew 를 해놓은지 몇달이 지났는데, 잘되던 자동 업데이트가 고장이 났는지,,, 언제부터인지 작동이 되고 있지 않았다. 로그를 확인해보자.IMPORTANT NOTES: - The following errors were reported by the server: Domain: {나의도메인} Type: unauthorized Detail: {나의IP}.80: Invalid response from http://{나의도메인}/.well-known/acme-challenge/FI-192LHhyZ3ovzf6-wrqxfh-lN1dCGm1hTl8rFQaY0: 404 To fix these errors, please make sure that your domain name wa..

메타 데이터를 수정하는 과정에 다른 아이디 계정으로 수정하고 톰캣을 부팅하면서 뭔가 꼬인듯하다... 구글링 검색 결과 tomcat 디렉터리에 work를 삭제하고 재부팅하면 된다고 한다. sudo rm -rf work 로 work 디렉토리를 삭제하고 톰캣을 재부팅 하니 정상적으로 구동된다.

어느날 갑자기 홈페이지에서 타임 오버 에러가 났다. 부랴부랴 서버에 가서 nginx와 tomcat 을 재기동 해봤지만 여전히 에러가 났다. 혹시나 싶어 클라우드 방화벽까지 전부다 off를 시켜봤지만 여전히 되지 않는다. 지금부터 모든 과정을 다 정독했고, 풀이로 가보겠다. 트래픽이 1번째로 만나는 방화벽은 클라우드 방화벽이다. 통상 클라우드 서버를 호스팅하면 클라우드 방화벽이라 하여, 인바운드(inbound) 아웃바운드( outbound)를 설정하게 된다. 여기서 http(80) https(443) 22(sftp)등등을 오픈한다. 1번이 정상적으로 통과 됬는지(클라우드 서버를 못믿어서), 확인하려면 tcpdump를 사용해보면 된다. sudo tcpdump -i eth0 tcp port 80 를 하게 되면..

구동 에러가발생했고, 난 뭐 수정한것도 없는데 말이다.. 인터넷 검색결과 WAS 재기동 과정중에 수많은 요청이 오면 WAS처리가 안되어 에러가 난다? 라는 결과로 다음과 같이 처리했다. 1. 80TCP 삭제 후 재기동 sudo fuser -k 80/tcp sudo systemctl restart nginx fuser 가 없으면 yum -y install psmisc 로 설치해주자. 80포트가 현재 리스닝 중이라 구동에 안된다는건줄알았다. 대부분의 경우 여기서 해결된다는데... 나는 그것이 아니였고 여러 삽질결과 2. SELinux(보안 강화 Linux) 설정 getenforce 이 명령어의 결과가 'Enforcing'라면 SELinux가 활성화된 상태. 이 경우, 임시적으로 SELinux를 비활성화하고 ..

로컬에서는 정상적으로 구동되다가, 서버에 올려서 톰캣 구동시 이렇게 어플리케이션 구동 실패에러 와 및에 내려보면 어디서 뜬 에러인지 보인다. 맨 아래 보면 Caused by: java.lang.NoClassDefFoundError: org/springframework/boot/configurationprocessor/json/JSONException 에러가 존재하는데, NoClassDefFoundError 에러의 경우, 종종 몇몇 라이브러리가 개발=>운영으로 서버 올리는 과정에서 인식이 되지 않는다고 한다. 그중에 하나가 JSON 라이브러리인데 maven의 정상적인 org.json 을 설치하고 해당 컨트롤러의 import를 바꿔주면된다. pom.xml에 org.json json 20230227 을 넣고 ..

nginx 첫 생성후 다음과 같은 에러가 발생했다. Request Entity Too Large 라고 하는데, 한번의 요청에 길이 제한이 있는데 기본은 1MB이다. 요청을 길게 만들어보자. nginx.conf 로 가서 http 혹은 server location 객체 안에 설정을하자. 필자의 nginx 는 /var/etc/ 폴더에 있다... vi /etc/nginx/nginx.conf http 안에 client_max_body_size 0; 을 입력하면 객체 길이에 상관없이 요청을 받는다. nginx.conf 파일을 수정해주고 재시작 하면 된다. nginx -s reload