728x90
반응형
SMALL

AWS Application Load Balancer의 health check path에서 404 오류가 발생하면, 로드 밸런서는 해당 인스턴스를 비정상 상태로 표시합니다. 이를 해결하기 위해 다음과 같은 방법을 시도해 볼 수 있습니다.

  1. Health Check Path 수정: Health check path가 존재하지 않거나 잘못된 경로를 가리키고 있는 경우 404 오류가 발생할 수 있습니다. 따라서, 정확한 경로를 지정하도록 설정을 변경해보세요.
  2. Security Group 설정 확인: 보안 그룹 설정에서 Health Check 요청을 허용하지 않은 경우에도 404 오류가 발생할 수 있습니다. 인스턴스의 보안 그룹 설정을 확인하고, 로드 밸런서의 보안 그룹에서 Health Check 요청을 허용하도록 구성해보세요.
  3. 인스턴스 구성 확인: Health Check 요청이 인스턴스로 전달되는 포트 및 경로를 확인해보세요. 인스턴스 구성과 일치하지 않는 경우 404 오류가 발생할 수 있습니다.
  4. 로그 분석: 인스턴스에서 로그를 확인하여 404 오류를 발생시키는 요청을 확인하고, 해당 요청에 대한 처리를 개선하도록 시도해보세요.
  5. Health Check Protocol 변경: Health Check Protocol이 HTTP 또는 HTTPS로 설정되어 있는 경우, 인스턴스에서 해당 프로토콜로 응답해야합니다. 만약 인스턴스가 다른 프로토콜로 응답하고 있다면, Health Check Protocol을 변경하여 다시 시도해보세요.

위와 같은 방법으로 시도해보아도 문제가 해결되지 않는다면, 로드 밸런서나 인스턴스의 상태를 확인해보는 것이 좋습니다.

 

일단 health check에서 200을 404로 바꾸면 HTTP -> HTTPS로 변경 완료 된다!
이를 200에서 해결하기 위해 찾고 있습니다.
config와 controller를 설정하고 있습니다.

728x90
반응형
LIST
728x90
반응형
SMALL

보통 브라우저에서는 HTTP 페이지에 있는 Javascript가 HTTPS로 접속 할 경우 경고를 발생합니다. 보안상의 이유로, HTTPS 접근을 위해서는 현재 페이지도 HTTPS여야 합니다. (그래서 http://www.naver.com로 접속하면 https://www.naver.com 으로 redirection 됩니다)

  1. https://ap-northeast-2.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-2#LoadBalancers:sort=loadBalancerName 로 이동합니다.
  2. 이전 강좌에서 생성한 로드밸런서를 선택 후 “리스너” 탭을 선택합니다.
  3. HTTP:80 을 선택 후 “편집"을 클릭합니다.

4. 기존에 설정되어있던 기본 작업(다음으로 전달 HelloNode)를 삭제합니다.

5. “작업 추가"를 누른 후, “다음으로 리다이렉션"을 선택합니다.

6. 다음과 같이 입력 후 “업데이트" 합니다.

이제 http://hellonode.net 으로 접속하면 https://hellonode.net 으로 리다이렉션이 됩니다.

현재 저는 여기서 막힌 상태입니다..ㅠㅠㅠㅠ
health checks failed with these codes 404 aws target group을 해결하고 다시 수정하겠습니다!
-> html이 없어서 발생한 문제라고 하는데, 조금 찾아보면서 할 예정입니다!

-> health 컨트롤러를 만들어서 시도 해보았지만... 시큐리티 로그인화면만 나와서 방법을 찾아보고 있습니다.


-> 스프링에서는 시큐리티 로그인을 뚫을 수가 없어서 (필터에서 따로 예외처리를 하지 않는 이상)

이렇게 바꿨습니다.
path에 / -> /login 으로 변경하니 사용이 잘됩니다!!

노드의 경우 
/api 만 적어도 적용이 됩니다!

 

728x90
반응형
LIST
728x90
반응형
SMALL

모든 작업은 기본적으로 PUTTY로 원격지에 접속되어 있어야 합니다.

1. AWS EC2 root 계정 활성화

생각해보니 이전 작업에서 root 계정의 비밀번호를 활성화하지않고 사용하였습니다.

root계정에 비밀번호를 설정하고 root계정을 사용해보도록 하겠습니다.

인스턴스 ip로 접속후

sudo passwd root

sudo passwd root 입력 후 비밀번호/비밀번호확인 입력

(키보드를 눌러도 아무것도 보이지 않지만 입력되는 상태입니다.)

passwd: password updated successfully (성공!)

root 접속 방법!

ubuntu@ip주소:~$ su

결과

root@ip주소:/home/ubuntu# 

2. URL의 프로젝트명 숨기기

2.1 Tomcat 경로 이동

cd /etc/tomcat9 를 입력하여 xml파일이 있는 경로로 이동합니다.

cd /etc/tomcat9 를 입력하여 xml파일이 있는 경로로 이동합니다.

2.2 server.xml 수정

sudo nano server.xml를 입력하여 나노편집기를 실행하고 </Host>부분 위에 아래와 같이 작성합니다.

<Context docBase="프로젝트명" path="/" reloadable="false" source="org.eclipse.jst.jee.server:프로젝트명"/>

2.3 Tomcat 재부팅

cd 를 입력하여 기본 경로로 이동합니다.

sudo service tomcat9 stop 를 입력하여 톰캣 서비스를 종료합니다.

sudo service tomcat9 stop 를 입력해 톰캣 서비스를 다시 시작합니다.

2.4 프로젝트 이름 숨기기 완료

퍼블릭 IPv4주소:8080 만 검색창에 입력하여도 업로드한 프로젝트가 보이게되며,

이전에는 적용되지 않았던 CSS와 JS도 적용됨을 확인할 수 있습니다.

3. URL의 8080포트 숨기기 (포트 포워드)

su 명령어를 통해 root계정으로 접속되어있는 상태에서

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080 을 입력하면 끝!

이제 도메인주소만 입력하면 접속이 된다!

728x90
반응형
LIST

'개발 > sw' 카테고리의 다른 글

AWS Application Load Balancer의 health check path 404  (0) 2023.04.01
AWS 로드밸런서 HTTP → HTTPS 리다이렉션  (0) 2023.03.31
인스턴스IP 도메인 연결  (0) 2023.03.31
Codedeploy SQL 오류  (0) 2023.03.30
CodeDeploy  (0) 2023.03.30

+ Recent posts