spacesheep 배포 기록
1. ec2 초기 세팅
- 가상환경 생성
sudo yum install virtualenv
virtualenv -p python myenv
source myenv/bin/activate
2. daphne, gunicorn 설치 및 서비스 등록
- 서비스 실행/종료/삭제/재시작
- sudo service nginx start # 시작
- sudo service nginx enable # 서비스로 등록(처음 시작할 때만 해줌)
- sudo service nginx stop # 정지
- sudo service nginx restart # 재시작
- sudo service nginx disable # 서비스 삭제
# 실행중인 서비스 목록 보려면
sudo systemctl -l
# 서비스 파일 경로
/etc/systemd/system
# 서비스 파일에 변경사항 반영하려면
sudo systemctl daemon-reload
3. nginx 서비스 등록 및 ssl 발급
yum install python-certbot-nginx
4. nginx로 daphne(ws), gunicorn(http) 연동
upstream daphne {
server 127.0.0.1:8001;
}
upstream gunicorn {
server 127.0.0.1:8000;
}
server {
server_name 도메인 이름;
listen 443 ssl;
location / {
proxy_pass http://gunicorn;
include uwsgi_params;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
}
location /static/ {
root /home/ec2-user/{정적 파일 경로};
}
location /home/ask {
proxy_pass http://daphne;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
ssl_certificate
(ssl 발급받으면 이 밑으로 자동으로 셋팅이 생성된다.)
5. elasticache 연결
AWS에서 elasticache Redis 생성 후
클러스터 주소를 settings에 로컬 주소 대신 넣으면 된다.
기타 설정 과정이 간편해서 ec2에 redis 설치하는 대신 사용했다.
기타 에러 발생 시 유용한 메모
- 다른 서비스가 점유중인 포트 확인 방법
netstat -anp | grep {port}
# kill
sudo fuser -k {port}/tcp
- 특정 서비스에 대한 로그만 검색
journalctl -u {service name}
도움받은 사이트 :
- ec2 배포 기초 세팅
https://roseline124.github.io/django/2019/05/21/pickmeal-SSH.html- nginx conf 작성 방법
https://leffept.tistory.com/283?category=950490- nginx ssl 적용 방법 (let's encrypt)
https://daily-life-of-bsh.tistory.com/225
Author And Source
이 문제에 관하여(spacesheep 배포 기록), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@s0ye0nyang/뿌슝-배포-기록-nginx-daphnews-gunicornhttp-rediselasticache저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)