Post

EC2 배포시 구글 소셜 로그인 에러 문제 (with NGINX)

🎬 Intro

EC2 배포시 구글 소셜 로그인 에러가 발생하는 부분을 해결해봅시다.

✅ 문제

  • 로컬에서는 동작하던 구글 소셜 로그인이 EC2에 배포하니까 404 에러 및 액세스 요청 거부 발생

✅ 원인

액세스 요청 거부

  • 구글 Oauth 2.0 공식 문서에 의하면 리디렉션 URI는 로컬호스트 또는 도메인 이름만 가능했지만, 승인된 리디렉션 URI에는 로컬호스트만 등록된 상태였습니다.

404 에러

  • EC2에 NGINX가 실행중이였고 EC2 퍼블릭 ip4 dns가 NGINX 설정파일에 등록되지 않아, 어플리케이션 쪽으로 리버스 프록시가 되지 않은 상황이였습니다.

✅ 해결 과정

  • 구글 api 서비스 사용자 인증 정보의 승인된 리디렉션 URI에 EC2 퍼블릭 ip4 DNS 추가
    1
    
    http://ec2-#-##-###-##.ap-northeast-2.compute.amazonaws.com/login/oauth2/code/google
    
  • 스프링 부트 구글 로그인 리디렉션 URI 퍼블릭 ip4 DNS로 수정
    1
    
    redirect-uri: http://ec2-#-##-###-##.ap-northeast-2.compute.amazonaws.com/login/oauth2/code/google
    
  • EC2 NGINX 설정 파일에 퍼블릭 ip4 DNS 추가
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    server {
      listen 80;
      listen [::]:80;
    
      server_name ec2-#-##-###-##.ap-northeast-2.compute.amazonaws.com;
    
      root /var/www/html;
      index index.html;
    
      location / {
          proxy_pass http://127.0.0.1:8080;
      }
    }
    
  • EC2 NGINX server_name 길이제한 설정
    1
    
    sudo vim /etc/nginx/nginx.conf
    
    1
    2
    3
    4
    5
    
    http {
      # 기존 설정들...
    
      server_names_hash_bucket_size 128;
    }
    
  • EC2 NGINX 설정 테스트 및 재시작
    1
    2
    3
    4
    
    # 설정 테스트
    sudo nginx -t
    # 재시작
    sudo systemctl restart nginx
    
This post is licensed under CC BY 4.0 by the author.