스파르타 웹개발종합반 5주차-2

햄찌·2022년 10월 18일
0

서버에 프로젝트 올리기

  • 클라이언트의 요청에 항상 응답하려면 :
    1 서버 컴퓨터가 계속 켜져 있어야 함
    2 모두가 접근 가능한 공개 IP 주소로 접근할 수 있어야 함
    -> AWS 클라우드 서비스에서 항상 켜놓을 수 있는 컴퓨터 EC2의 사용권 구매해 서버로 사용

원격접속

AWS EC2 접속(window)

1.Git Bash 접속
2.ssh -i sparta_mykey.pem파일을 끌어다가 넣는다. ubuntu@ 입력후 aws 에 있는 퍼블릭IPav4주소를 복사하여 bash 창 오른쪽 클릭하여 paste선택하여 붙여넣은후 enter 누른다.
3.yes 입력

AWS EC2 접속(mac)

1.Git Bash 접속
2.$sudo chmod 400 sparta_mykey.pem파일을 끌어다가 넣는다.
맥 비밀번호 입력하면 사전준비 끝

  • mkdir sparta - sparta 폴더 만들기
  • ls - 내 위치에 있는 폴더 확인
  • cd sparta - sparta폴더로 들어가기
  • cd .. -폴더 밖으로 나가기

서버 세팅하기

1.서버환경 통일하기.

메모장을 열어 입력하기

  • python3 -> python

    sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10

  • pip3 -> pip

    sudo apt-get update

sudo apt-get install -y python3-pip
sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1

  • port forwarding

    sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000

  • python3 라는 이름이 아닌 python 이라는 이름으로 명령을 내리겟다고 설정

  • flask 나 pymongo 같은 패키지 설치를 도와주는 pip설치

  • localhost:5000에서 5000을 떼도 접속 가능하게 하겠다(포스포워딩)

2.FileZilla 프로그램 열기

  • 왼쪽 구역이 내 컴퓨터, 오른쪽 구역이 EC2(원격)

  • EC2 연결 :
    1 filezila 사이트 관리자 버튼(파일 버튼 아래) 클릭 -> 새 사이트
    2 프로토콜을 sftp로 변경
    3 호스트 입력(인스턴스 주소), 포트 22로 입력
    4 로그온 유형을 키 파일로 두고 사용자는 ubuntu로 입력, 키 파일 입력(키파일첨부)
    5 연결

  • 왼쪽의 내 컴퓨터에서 파일을 끌어다 오른쪽의 EC2에 놓으면 파일 전송이 완료된다.

  • 서버에 올릴 프로젝트 폴더의 static 폴더, templates 폴더, app.py 파일을 전송

EC2에서 app.py 파일 실행

Git Bash에서 app.py를 실행시 필요한 모듈 먼저 깔아준다

pip install flask
pip install pymongo
pip install dnspython

  • 세 모듈을 전부 깔았으면 python app.py 실행

EC2에서 5000 포트 열기

  • '인스턴스주소:5000'에 프로젝트가 올라갔지만 EC2에서 5000 포트를 아직 열어주지 않아 접속 불가능
  • AWS 사이트 인스턴스에서 보안 -> 보안 그룹 -> 인바운드 규칙 편집
    1 규칙 추가 : 포트 번호 5000, 소스 Anywhere-IPv4
    2 규칙 추가 : 포트 번호 80, 소스 Anywhere-IPv4
  • 2개의 규칙을 추가 후 저장
  • 이제 '인스턴스주소:5000' 주소에 접속하면 프로젝트가 뜨는 게 보인다
    (5000 빼도 접속 가능)

주소에서 5000을 떼도 접속 가능한 이유(포트 포워딩)

  • 프로젝트는 5000 포트에서 돌기 때문에 주소에 :5000을 항상 붙여줘야 한다
  • http 요청에서는 80포트가 기본이기 때문에, 굳이 :80을 붙이지 않아도 자동으로 연결된다
  • 80 포트로 오는 요청을 5000 포트로 전달하게 하는 포트포워딩을 사용하여 주소(:80)로 접속하면 주소:5000로 연결되게 한다

    sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000

nohup 설정하기

  • 원격 접속을 종료해도 서버가 돌아가게 한다

    실행 명령어 : nohup python app.py &
    종료 명령어 : ps -ef | grep 'python app.py' | awk '{print $2}' | xargs kill

도메인 연결

가비아접속하기

  • DNS 설정 :
    호스트 : @
    값/위치 : 인스턴스 주소

확인 후 저장

  • 설정한 DNS 주소로 접속하면 프로젝트 사이트가 나오는 것을 볼 수 있다

메타(og) 태그 설정

<meta property="og:title" content="내 사이트의 제목" />
<meta property="og:description" content="보고 있는 페이지의 내용 요약" />
<meta property="og:image" content="이미지URL" />
  • 바꾼 html 파일은 서버에 보낸 후 재시작하면 적용된다
  • 카톡으로 주소를 공유하면 메타 태그로 적용한 제목, 이미지, 설명이 뜨는 것을 볼 수 있다
  • 주의 : 카톡은 한 번 공유된 사이트는 정보를 저장해놓고 계속 쓰기 때문에 메타 태그를 바꿔도 반영되어 나오지 않는다. 아래 사이트에서 초기화 하면 변경된 것 확인가능
    카카오톡 og 태그 초기화
    페이스북 og 태그 초기화

결과
톰하디 팬명록

페이지방문시

응원남기기

카카오톡 공유

0개의 댓글