분류 전체보기 645

[Nginx] gZip

/etc/nginx/nginx.conf/etc/nginx/sites-available/default에 추가하려니까 에러가 떴었는데 gzip on이 nginx.conf에 기본적으로 활성화 되어있었다.  gzip_disable "msie6";gzip_proxied any;gzip_comp_level 6;gzip_min_length 500;gzip_buffers 16 8k;gzip_typestext/plain text/css text/jstext/xmltext/javascriptapplication/x-javascriptapplication/javascript application/json application/xml application/rss+xmlimage/svg+xml;    참고 👇👇👇TWpow..

DevOps/Nginx 2024.05.17

ClientAbortException

🌈 TIL큰 문제는 아니고, 서버에서 응답을 보내주기 전에 클라이언트와 연결이 끊긴다고 생각하면 될 것 같다.    참고 👇👇👇https://serverwizard.tistory.com/301 ClientAbortException은 언제 발생하는가?서비스 모니터링을 하다가 아래처럼 ClientAbortException(java.io.IOExceiption: Broken pipe)이 발생하고 있는 것을 확인했다. 이에 해당 Exception이 언제 발생하는지를 분석해 봤다. 일단 해당 로그를 보면서serverwizard.tistory.com

certbot 인증서 폐지 및 새로운 도메인의 인증서 발급 과정에서 겪은 문제점

기존 EC2가 문제가 있어서 없애고 다시 만들었다.이전에 쓰던 도메인을 사용하려고 certbot으로 새로 인증서를 발급받았다.이상한 점이 프런트엔드 서버를 띄우지도 않았는데 접속이 된다.백엔드랑 통신은 안 되지만캐시 같은건가..?인증서 정보를 보니 발급받은 날짜가 최신이 아니고, 그전에 받은 날짜다.같은 도메인으로 인증서를 발급받으면 이전에꺼를 주는 것 같다.인증서를 폐지하고 싶었는데 인증서가 있던 기존 서버를 삭제해버렸다. 🥹시간이 좀 지나야 EC2 서버가 완전히 죽는 것 같다.내 경험상 일 주일은 지나야했다.서버 분명히 죽었는데 접속되는 거 보면 캐시가 남아있나보다.그 이후에는 SSL 인증서 발급 잘 된다. 😊 🌈 TIL나는 인증서 발급 받을 때 Nginx의 default 파일도 같이 자동으로 ..

DevOps/Nginx 2024.05.15

bucket4j를 이용한 요청 횟수 제한

☀️ bucket4j 의존성 추가implementation 'com.bucket4j:bucket4j-core:8.10.1'  🐒 1분에 최대 3번의 요청을 받을 수 있도록 설정@Configurationpublic class BucketConfig { @Bean public Bucket bucket() { final Refill refill = Refill.intervally(3, Duration.ofSeconds(60)); final Bandwidth limit = Bandwidth.classic(3, refill); return Bucket.builder().addLimit(limit).build(); }}  🍔 API 호출 시 1씩 차감제한된 ..

[Error] 'org.springframework.batch.core.configuration.annotation.JobBuilderFactory' that could not be found.

🐛 문제Parameter 0 of constructor in com.sieum.batch.job.DeleteThrownMusic required a bean of type 'org.springframework.batch.core.configuration.annotation.JobBuilderFactory' that could not be found.  😎 해결@EnableBatchProcessing 어노테이션을 붙여주면 빈 주입을 해준다.@EnableBatchProcessing@SpringBootApplicationpublic class BatchApplication { public static void main(String[] args) { SpringApplication.run(..

prometheus와 SpringBoot 연동

🥐 의존성 추가implementation 'org.springframework.boot:spring-boot-starter-actuator'runtimeOnly 'io.micrometer:micrometer-registry-prometheus' 🐣 Swagger 3.0과 actuator 충돌 문제 해결초기화 후에 호출되는 메서드 postProcessAfterInitialization을 재정의빈 타입이 WebMvcRequestHandlerProvider 또는 WebFluxRequestHandlerProvider일때 로직 수행WebMvcRequestHandlerProvider 또는 WebFluxRequestHandlerProvider 클래스에서 handlerMappings 이름을 가진 빌드를 찾는다.pa..

[Error] No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalancer?

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.sieum.batch.feign.MusicFeignClient': Unexpected exception during bean creation; nested exception is java.lang.IllegalStateException: No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalancer?Caused by: java.lang.IllegalStateException: No Feign Client..

TypeError: Failed to execute 'fetch' on 'Window' : Request with GET/HEAD method cannot have body.

Swagger에서 GET 메소드로 API를 실행시키니 이런 에러가 떴다.TypeError: Failed to execute 'fetch' on 'Window' : Request with GET/HEAD method cannot have body. 포스트맨에서 호출하면 잘 된다.이상한 점이 GET은 원래 body가 없다고 했는데 그럼 포스트맨이 이상한가?GET에 body를 담아보낼 수도 있고, 안 될수도 있다고 함POST로 바꿈 참고 👇👇👇https://funveloper.tistory.com/157 GET 메소드 요청시 body 를 보낼 수 있을까?안녕하세요. 루루개발자 입니다. 이번에는 GET 메소드로 요청을 보낼 때, body 를 같이 보내는 것이 가능한지 알아보고자 합니다. GET 메소드에 대..

Framework/Spring 2024.04.26

[Ubuntu] Docker MySQL 설치

🐭 Docker에서 MySQL 설치sudo docker pull mysql  🐔 MySQL 컨테이너 실행sudo docker run -it -d -p 3306:3306 --name {컨테이너명} -e MYSQL_ROOT_PASSWORD={password} {이미지명}  👜 방화벽 허용workbench에서 접속할려고 3306 포트를 열어줬다.sudo ufw allow 3306sudo ufw reload  🎃 사소한 이슈 로컬에 있는 MySQL 워크벤치로 접속했을 때 떴는데 EC2에 있는 MySQL이 최신버전이라서 그렇다.아직까지 문제 없고, 문제가 발생하면 다시 글을 작성해야지.

Linux 2024.04.23

[AWS] Snapshot을 이용해서 복구하기

1. Snapshots 생성Snapshot을 생성하는데 시간이 좀 걸린다.2. Snapshot을 이용해서 새로운 인스턴스를 생성기존 인스턴스는 직접 삭제해야 함   3. 인스턴스를 생성할 때 방화벽을 해제하는 스크립트 추가 4. SSH 접속을 한 뒤 방화벽 활성화sudo ufw allow 22sudo ufw enable  🍍 Snapshot 사용 비용청구서를 보면 알다시피 무료가 아니니까 참고하기~

DevOps/AWS 2024.04.22