웹 개발 일지 _ 서버 올리기
-
준비
FileZilla가입하기
https://filezilla-project.org/download.php
가비아 가입하기
https://www.gabia.com -> 이곳에서 내 서버를 살 수 있음 -
EC2 콘솔 페이지
https://ap-northeast-2.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-2
컴퓨터 한대한대를 '인스턴스'라고 한다.
이녀석을 사용할 것임
원격에서 사용하기 위한 key설정
1년동안 무료
- 원격 접속 하기
sudo chmod 400 *keypair*
ssh -i *keypair* ubuntu@*IPv4주소*
- filezilla를 이용해서 GUI환경으로 원격 저장소에 파일 올리기
호스트 : IPv4주소 Port:22
로그온 유형 : 키 파일
사용자 ubuntu
keyfile : keypair
접속 완료.
- 서버 환경 통일하기
# UTC to KST
sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
# 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
pip3 --version
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
# MongoDB - install
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
sudo apt-get update
sudo apt-get install -y mongodb-org
sudo mkdir -p /data/db
# MongoDB - run
sudo service mongod start
sleep 7
netstat -tnlp
# MongoDB set user, set conf file
mongo admin --eval 'db.createUser({user: "testID", pwd: "testPW", roles:["root"]});'
sudo sh -c 'echo "security:\n authorization: enabled" >> /etc/mongod.conf'
sudo sed -i "s,\\(^[[:blank:]]*bindIp:\\) .*,\\1 0.0.0.0," /etc/mongod.conf
sudo service mongod stop
sudo service mongod start
sleep 5
netstat -tnlp
- 실행시키기
권한 설정
sudo chmod 755 initial_ec2.sh
실행
./intial_ec2.sh
*pip -> 파이썬 패키지 설치 도와주는 Library
*mongo -> mongoDB로 들어옴
EC2 컴퓨터에 flask서버 실행하기
- flask & pymongo & bs4 & request설치
pip install flask
pip install pymongo
pip install requests
pip install bs4
이후 APP.py를 올려 실행해도
IPv4주소 : 5000에서 실행이 되지 않음..
AWS의 자체 방화벽이 설정되어 있기때문에 포트를 열어주어야한다
22번 포트는 미리 열려있었으므로 우리가 filezila를 통해 접속할 수 있었던 것
- DB연결하기
Robo3T에서 접속하기
mongoDB setting을 test,test로 했다.. 그러므로 그 값을 입력해주어야 함.
접속 완료
APP.py 에서 mongoDB연결하기
from pymongo import MongoClient
from flask import Flask, render_template, jsonify, request
app = Flask(__name__)
client = MongoClient('mongodb://ID:PW@localhost', 27017)
# client = MongoClient('localhost', 27017)
db = client.practice
옮겨서 실행시켜놓기
- 5000번 포트 번호 떼어내기@@
리눅스 자체는 포트 번호를 입력하지 않아도 자동으로 접속할 수 있도록 80포트로 이부 요청을 받아들인다.
그러므로 5000번 포트를 표기하기 싫다면 80포트로 들어오는 요청들을 5000번으로 전달하게 하는 port forwarding을 사용하면 된다.
port forwarding
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000
자동으로 구현하기
- nohub 이용하기
nohup python 구동할 파일 &
ps -ef | grep 찾는 파일 -> 실행중인 파일들은 보여줌
kill -9 프로세스 번호 -> 해당 프로세스를 중단시킨다.
-
도메인 연결하기
가비아에서 산 도메인에 나의 주소를 연결
-
ogtag설정하기
<meta property="og:title" content="내 사이트의 제목" />
<meta property="og:description" content="보고 있는 페이지의 내용 요약" />
<meta property="og:image" content="{{ url_for('static', filename='ogimage.png') }}" />
Author And Source
이 문제에 관하여(웹 개발 일지 _ 서버 올리기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yoon_s_whan/웹-개발-일지-서버-올리기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)