jm_p_op
aws Django 서버 배포하기 -3(http=>https 업그레이드 본문
1. Route 53 에서 도메인 구매
원하는 도메인 찾기
만약 구매했다면
Domains-Registered domains에서 서버 이름값이 hostzones의 서버와 같다.
2.load balancer
- 밸런서 만들기
- Application load balancer선택
- basic configuration 밸런서 이름 넣
- Network mapping
- 4개 모두 체크하기 (이제 주소는 접속중인 지역으로 되므로 주의하자 서울은 northeast)
- 보안 그룹생성
- 그룹 리스트 새로고침
- 생성한 그룹선택
- 선택한 그룹(생성된것)빼고 지우기
생성시 inbound rules에 http(80포트- Anywhere-IPv4)로 만든후 생성하기
create targetgroup
loadblancer - listener 추가하기
- 1.https 추가
- 2.add action에서 forword 추가
- 3. target group에 아까 만든 group 추
ACM생성하기
구매하신 도메인 넣고 create하기
route53이랑 연동하기 (만약 도메인이 다르거나 Domains-Registered domains에서 서버 이름값이 hostzones의 서버와 다르다면 무한 pending에 빠지게 된다)
route53에서 연결이 된다면 CNAME으로 들어간다.
route53 - host_zone - create_record
- 1.alias 키고
- 2.Alias to Application and Classic Load Balancer
- 3~4.만든 로드 밸런서 연결
Gunicorn 설정
- venv 폴더에 .env 파일 만들기 (텅빈 파일)
cd ~
vim {프로젝트}/venv/.env
- :wq로 나온후 ls로 만들어진거 확인하기
.service 파일 만들기(전에 있었던거 지우거나 덮어씌어도 된다.)
sudo vim /etc/systemd/system/<프로젝트명>.service
<프로젝트명>.service
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=ubuntu
Group=ubuntu
WorkingDirectory=/home/ubuntu/<프로젝트폴더>
EnvironmentFile=/home/ubuntu/<프로젝트폴더>/venv/.env
ExecStart=/home/ubuntu/<프로젝트파일>/venv/bin/gunicorn \
--workers 2 \
--bind unix:/tmp/gunicorn.sock \
<프로젝트명>.wsgi:application
[Install]
WantedBy=multi-user.target
- WorkingDirectory - <프로젝트파일> = manage.py가 있는 폴더명(까지의 경로)
- EncironmentFile - 방금 .env만들었던 것까지의 경
- ExecStart - <프로젝트명> = settings.py가 있는 폴더명
:wq 로 저장
sudo systemctl enable {프로젝트}.service
sudo systemctl restart {프로젝트}.service
sudo systemctl status {프로젝트}.service
- 구니콘 설정다시하기, 재시작, 상태보기 명령어 한세트 (프로젝트 코드가 달라질때마다 다시해야된다.)
- 항상 만들어진 시간이랑 상태 보고 확인하기
Nginx 설정
sudo vim /etc/nginx/sites-availables/{프로젝트명}
/프로젝트
server {
listen 80;
server_name test53jm.com(도메인 서버);
location / {
include proxy_params;
proxy_pass http://unix:/tmp/gunicorn.sock;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
}
location = /favicon.ico { access_log off; log_not_found off; }
location /static {
root /home/ubuntu/프로젝트폴더/;
}
location /media {
root /home/ubuntu/{프로젝트폴더}/;
}
}
:wq
cd /etc/nginx/sites-enabled/
sudo rm -rf {프로젝트명}
sudo ln -s /etc/nginx/sites-available/{프로젝트명}
- nginx 새롭게 만들거나 수정할때마다 삭제하고 다시 만들어주자
- 파란글씨가 나오면 연결 잘된것
sudo systemctl restart nginx
sudo systemctl status nginx
완성
도메인/admin 으로 들어가서 작동되면 완성된것이다.
'서버 > aws' 카테고리의 다른 글
LoadBalancer - Security Groups (0) | 2023.06.02 |
---|---|
aws Django 서버 배포하기 -4 admin csrf 토큰 넣기 (0) | 2023.06.02 |
aws Django 서버 배포하기 -2(서버에서 http포트로 Django 실행하기) (0) | 2023.05.21 |
SSH에서 서버 연결 (0) | 2023.05.19 |
aws Django 서버 배포하기 -1(서버 설정) (0) | 2023.05.19 |