본문 바로가기

nginx 413 에러 nginx를 통해 파일을 업로드하는 경우 가끔씩 아래와 같은 에러가 발생하는 경우가 있습니다. 413 에러가 발생하는 이유는 클라이언트(브라우저)가 요청 사이즈가 서버에 정의한 사이즈보다 커서 발생한 것이기 때문입니다. (디폴트 사이즈는 1MB입니다.) 에러를 해결하려면 nginx.conf를 수정해야 하는데 다음과 같이 수정하면 됩니다. 18번째 라인에 "client_max_body_size 1G;"를 추가해서 최대 1GB 사이즈 파일을 업로드 할 수 있게 되었습니다.
docker nginx&tomcat load balancing docker 환경에서 nginx와 tomat을 연동 및 로드밸런싱 하는 방법을 포스팅하겠습니다. nginx을 실행하기에 앞서 먼저 nginx.conf 파일을 따로 작성합니다. 저는 /home 디렉토리 밑에 따로 root 디렉토리를 만들어서 nginx.conf 파일을 작성했습니다. nginx.conf 파일에 대해 간략히 설명하면 workers_connections는 하나의 nginx 서버에 접속 가능한 클라이언트 개수를 생각하시면 됩니다. upstream은 nginx 서버에서 받은 요청을 처리하는 서버를 가리키는 모듈입니다. 그래서 "192.168.0.32:8080" 서버는 main(active) 역할을, "192.168.0.32:8081" 서버는 backup(standby) 역할을 할 예정이고, back..
docker install tomcat tomcat을 docker로 설치하는 방법을 포스팅하겠습니다. docker hub에서 tomcat 이미지를 검색합니다. tomcat 이미지가 있으면 다운받습니다. 이미지가 다운됐는지 확인합니다. 이미지 다운이 확인됐으면 컨테이너로 tomcat을 실행합니다. tomcat 컨테이너가 올라왔는지 확인합니다. tomcat 컨테이너가 확인되면 정상적으로 올라온 것입니다. 그러나 브라우저로 tomcat 접속하면 404 페이지가 보일 것입니다. 왜냐하면 현재 tomcat 컨테이너 안의 webapps 디렉토리 밑에는 아무것도 없기 때문입니다. 따라서 webapps 디렉토리 밑에 ROOT.war 파일을 올리고 재시작하면 404 페이지가 표출되지 않을 것입니다.
docker nginx install nginx를 docker로 설치하는 방법을 포스팅하겠습니다. 먼저 nginx 이미지를 docker hub에서 검색합니다. nginx 이미지가 있으면 다운받습니다. 이미지가 제대로 다운받았는지 확인합니다. 이미지 다운됐다면 이제 컨테이너로 실행합니다. nginx 컨테이너가 제대로 올라왔는지 확인합니다. nginx 컨테이너가 확인되면 정상적으로 올라온 것입니다. 크롬 브라우저로 nginx 접속했을 때 위와 같은 화면이 표출되면 nginx가 실행 중인 것을 확인할 수 있습니다.
centos 방화벽 포트 개방 리눅스에서 서비스를 운영하다 보면 포트를 개방해야 하는 경우가 있습니다. 예를 들면 WEB 서버 포트인 80번 포트를 열어야 하는 경우입니다. 이럴 때 "firewall-cmd" 명령어를 사용하면 됩니다. 위의 화면을 설명하면 "firwall-cmd --zone=public --add-port=80/tcp --permanent" 명령어는 "개방된 네트워크(--zone=public)에 영원히(--permanent, 서버가 재부팅되어도 유지) 80번 포트를 추가하겠다(--add-port=80/tcp)"라는 뜻입니다. 그리고 방금 방화벽 설정이 변경되었기 때문에 방화벽을 재시작합니다.(firewall-cmd --reload) 80번 포트가 열렸는지 확인합니다.(firewall-cmd --list-all) 반대..
File lastModifiedTime 조회 자바에서 파일 수정 시간 조회하려면 File 클래스의 lastModified API를 사용하면 확인할 수 있었습니다. 윈도우에서는 문제없이 파일 수정 시간을 확인할 수 있었지만 운영서버가 리눅스인 경우 lastModified() API로 수정 날짜를 확인할 수 없었습니다. (0을 리턴...) 따라서 해당 버그를 수정하기 위해 구글링 해본 결과 java.nio의 BasicFileAttributes 클래스를 사용하면 해결할 수 있었습니다. 위의 소스 코드를 간단히 설명하자면 해당 파일을 File 클래스로 담지 않고 Path로 담습니다.(15라인) 그리고 해당 파일의 속성을 BasicFileAttributes에 저장합니다.(16라인) 수정 시간(밀리 세컨드)을 날짜로 표현하기 위해 SimpleDateForma..
PostgreSQL DATE_PART 함수 PostgreSQL에서 날짜를 계산해야 하는 경우 DATE_PART 함수를 사용하면 됩니다. 위의 예제를 보면 DATE_PART 함수의 첫 번째 파라미터로 "DAY"를 두 번째 파라미터로 현재 날짜(2021년 3월 17일)와 2021년 3월 1일의 차이를 전달하고 있습니다. 그러면 해당 함수의 결과 값으로 "16"을 정상적으로 반환하고 있습니다. 날짜 계산할 때 서버에서 자바로 하는 것보다 PostgreSQL의 DATE_PART 함수를 사용하는 것이 더 편리한 거 같습니다.
이전 페이지 이동 자바스크립트에서 이전 페이지로 돌아가는 기능이 가끔 필요할 때가 있습니다. 예를 들면 상세 페이지 조회하다가 목록 페이지로 돌아가는 경우를 들 수 있습니다. 이럴 때 "window.history.back();"를 사용하면 쉽게 해결할 수 있습니다.