flask
Amazon AWS 에 ec2 계정을 만듭니다.
Ubuntu 16.04 환경을 만든 후
터미널에서 접속합니다.
ssh -v -i /Key/amazon.pem ubuntu@13.124.106.46
아무것도 안깔려있는 상태이기 때문에
파이선과 플라스크 그리고 웹 배포를 위한 apache, wsgi 를 설치합니다.
sudo apt-get install libapache2-mod-wsgi python-dev
sudo pip install flask
sudo apt-get install python-pip
샘플로 플라스크 앱을 만들어 봅니다.
/var/www/ 폴터에 Flask 라는 폴더를 새로 만들고
그 안에 샘플 코드를 넣습니다.
필수적인 샘플 코드는 다음과 같습니다.
Flaskapp.wsgi
#!/usr/bin/python
import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/var/www/Flask/")
from Flask import app as application
application.secret_key = 'mysecret'
## Traceback (most recent call last):
## File "<string>", line 8, in <module>
## ImportError: No module named Flask
init.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello, Welcome to Lopes!"
if __name__ == "__main__":
app.run()
@app.route('/input/<input_str>')
def count_me(input_str):
return input_str
## Traceback (most recent call last):
## File "<string>", line 2, in <module>
## ImportError: No module named flask
웹서버에 배포하려면
host 설정과, apache wsgi 설정을 반영해야 합니다.
/etc/hosts
/etc/apache2/sites-available
에 들어가 default 파일을 수정해줍니다.
/etc/hosts
13.124.106.46 FlaskApp
/etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
ServerName FlaskApp
ServerAdmin admin@yourdomain.com
WSGIScriptAlias / /var/www/Flask/flaskapp.wsgi
<Directory /var/www/Flask/Flask/>
Order allow,deny
Allow from all
</Directory>
Alias /static /var/www/Flask/Flask/static
<Directory /var/www/Flask/Flask/static/>
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
설정 완료 후
sudo /etc/init.d/apache2 reload
를 입력하여 서버를 재시작 하면 배포가 완료됩니다.
사이트 사용법
샘플 주소
http://13.124.106.46/
를 입력하면 인삿말이 출력되며
http://13.124.106.46/input/
http://13.124.106.46/input/philogrammer.com
뒤에 사이트 주소를 입력하면 사이트 주소가 출력 됩니다.