본문 바로가기

장고

(10)
AWS EB로 장고 프로젝트 배포하기 해당 글은 Mac 기준으로 되어 있다.  사용 AWS 서비스Elastic Beanstalk > 배포 도구Lightsail > DB > MariaDBS3 > 파일 스토리지EC2 > 서버 1. DB 생성더보기1) 가장 먼저 AWS 계정이 없으면 가입하자.2) Lightsail 생성하기RDS는 생각보다 비싸기 때문에 저렴한 Lightsail을 이용해서 DB 서버를 만든다1. Lightsail로 이동 2. create instance3. Operating System (OS) only4. 우분투 24.04 LTS ssh 접속을 위해 본인 키를 넣거나 계정/비밀번호를 기억하는건 기본 3) DB 설치이 글에서는 Maria DB를 설치한다. 다른걸 설치해도 무방 3-1) SSH로 Lightsail에 접속 3-2) M..
요청 도메인, 아이피, 정보 얻기 서버로 들어오는 요청의 도메인이나 아이피, 정보등이 필요할 때가 있다. API 서버를 만드는데 요청 도메인으로 인증을 할때라든지... 1. request 객체 사용하기 유저로부터 서버로 요청이 들어오면 request 객체를 받을 수 있다. 해당 객체에는 여러가지 요청에 대한 정보가 들어 있다. 아래의 메서드를 이용하면 여러 값을 얻을 수 있다. reqeust.path /main request.get_host() naver.com request.get_full_path() /main?order=fast reqeust.secure() 요청이 https 인가 아니냐로 True False 이 외에도 request.META를 입력하면 많은 정보를 얻을 수 있다. 아래 서비스를 이용하면 결과값을 쉽게 볼 수 있다...
키 파일 분리하기 AWS를 쓰다가 천만원이 나왔다는 이야기를 들어본 적이 있는가? 요즘 대부분의 서비스들은 유료 서비스를 API 키 인증으로 제공하고 있다. 근데 이런 유료 서비스를 사용하는데 들어가는 키를 분실한다면? 키를 훔처간 사람이 내 키를 이용해서 내 돈을 마구마구 쓸 것이다. 그렇기 때문에 보통 프로젝트를 만들면 키파일을 따로 분리하고 Github에 올라가지 않도록 한다. 1. 키파일 생성 먼저 적당한 위치에 파일을 생성한다. project/config/key.py 2. 내용 생성하기 여기서는 디비 접속 부분을 키 파일로 만들어 보겠다 key.py APP_DB_DEV = { "default": { "ENGINE": "django.db.backends.mysql", "NAME": "dev_db", "USER": ..
로그 남기기 우리가 일반적으로 로컬에서 개발을 하면 오류를 콘솔에서 확인할 수 있지만, 테스트 서버나 프로덕션 서버에서 wsgi를 사용하면 로그를 콘솔처럼 확인할 수가 없다. 그렇기 때문에 로그파일을 남겨서 확인하는 방법을 사용해야 한다. 1. settings.py에 로그 설정 부분 추가 가장 먼저 셋팅 파일을 열어서 아래 내용을 추가한다. . . . LOGGING = { "version": 1, "disable_existing_loggers": False, "filters": { "require_debug_false": { "()": "django.utils.log.RequireDebugFalse", }, "require_debug_true": { "()": "django.utils.log.RequireDebugT..
설정 파일 분리하기 장고 프로젝트를 상용화 하기 위해서는 설정파일 분리가 필수적이다. 설정파일을 분리해야 개발 버전과 프로덕션 버전의 설정을 나눌 수 있다. 이 글은 장고 프로젝트를 2가지 버전으로 나눠서 운영한다고 가정 - dev : 개발용 테스트 서버를 위한 설정 - prod : 실재 상용 서비스 프로덕션 버전을 위한 설정 1. settings 폴더 만들기 가장 먼저 기존 settings.py 가 있는 위치에 settings 라는 폴더를 생성한다 project/config/settings.py 가 있다면 project/config/settings/ 2. 설정 파일 생성하기 총 3개의 파일을 생성한다. project/config/settings/base.py project/config/settings/dev.py proj..
서버 배포 하기 이 글은 AWS EC2 ubunto 20.x 버전에 django 프로젝트를 배포하는 글이다. os의 종류나 버전에 따라 경로가 다를 수 있으니 자신의 경로에 맞게 사용하면 된다. EC2 우분투는 /home/ubuntu/ 를 기준으로 한다. 유저는 ubuntu 1. 배포 준비 A) 프로젝트 폴더로 이동해서 아래 명령을 실행 pip3 freeze >> requirements.txt B) Setting.py 파일 수정 ALLOW_HOST에 서버 주소나 도메인을 추가한다. ALLOWED_HOSTS = [ "192.168.0.1", "localhost", "naver.com", ] 그리고 static 파일이 빌드될 위치를 설정한다. static 파일은 나중에 서버에 올리고 생성하여 nginx에 연결해야 하니 위치..
Ubuntu + Nginx + Cafe24 SSL 적용(Django, Vue) 알아야할 지식 키워드 ubuntu nginx vi cafe24 ssl django vue 실행 1. 먼저 카페24 ssl 인증서를 신청한다. 신청이 완료되면 위와 같은 세팅으로 개인키, 인증서, 중개자인증서, 체인인증서를 모두 다운 받는다. 2. 다운받은 인증서를 SSL 인증을 적용할 서버로 옮긴다. 방법을 모르면 ubuntu scp를 검색 3. 인증서 합치기 서버의 적당한 위치에 인증서를 복사 후 인증서를 합친다. cat ssl.crt chain_all_ssl.crt > domain.pem domain.pem은 본인의 도메인 주소를 입력한다. 위 명령어를 입력하면 두개의 인증서를 붙여주는데 들어가보면 중간에 -----end certificate----- -----begin certificate ----..
AWS EC2에 github를 이용해 장고 어플리케이션 배포하기3 1. static 파일 생성을 위한 셋팅 프로젝트의 settings.py에 해당 내용을 추가한다. STATIC_ROOT = os.path.join(BASE_DIR, 'static') 추가 후 깃허브로 푸시 2. 서버의 프로젝트 폴더로 이동 후 파일 생성 먼저 깃허브에서 최신 버전으로 pull을 한다. 그 후 하래 명령어를 실행 가상환경 실행은 필수다 python manage.py collectstatic --settings=config.settings 뒷부분 --settings=config.settings 부분은 자신의 설정 경로에 맞게 수정하면 된다 3. nginx 설치 sudo apt-get install nginx 4. nginx 사용 유저 설정 먼저 해당 파일을 연다 sudo vi /etc/ngi..