Nginx로 Django 애플리케이션 배포
나는 사용할 것이다
이번에는 가상 환경 설치, EC2 인스턴스 설정 및 기타 기본 설정은 건너뛰겠습니다.
애플리케이션 배포
Nginx 서버 설정
Nginx 설치
$ sudo apt-get update
$ sudo apt-get install nginx
HTTPS를 활성화하려면 certbot을 설치하십시오.
$ sudo apt-get install certbot
$ apt-get install python3-certbot-nginx
/etc/nginx/conf.d 내부에 (your domain).conf라는 파일을 만듭니다.
예: 'domainname.com.conf'.
방금 만든 파일을 편집합니다.
server {
listen 80 default_server;
listen [::]:80 default_server;
root (path to your root folder);
server_name domainname.com;
}
파일을 저장하고 이 명령을 실행하여 모든 것이 정상인지 확인합니다.
$ sudo nginx -t
그런 다음 서버를 로드합니다.
$ sudo nginx -s reload
SSL 인증서 얻기
이 명령을 실행하여 인증서를 생성하십시오.
$ sudo certbot --nginx -d domainname.com
'domainname.com.conf'를 편집합니다.
server {
listen 80 default_server;
listen [::]:80 default_server;
root (path to your root folder);
server_name domainname.com;
listen 443 ssl; # managed by Certbot
# RSA certificate
ssl_certificate /etc/letsencrypt/live/domainname.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/domainname.com/privkey.pem; # managed by Certbot
location / {
root (path to your django root);
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://localhost:8001;
}
location /static/ {
alias (path to the static folder);
expires 7d;
}
location /media/ {
alias (path to the media folder);
}
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
# Redirect non-https traffic to https
if ($scheme != "https") {
return 301 https://$host$request_uri;
} # managed by Certbot
}
server {
if ($host = domainname.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80 default_server;
listen [::]:80 default_server;
server_name domainname.com;
return 404; # managed by Certbot
}
django 서버를 실행하면 응답 헤더에서 서버가 변경된 것을 볼 수 있습니다.
Reference
이 문제에 관하여(Nginx로 Django 애플리케이션 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/ninahwang/deploying-a-django-application-with-nginx-6j4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ sudo apt-get update
$ sudo apt-get install nginx
$ sudo apt-get install certbot
$ apt-get install python3-certbot-nginx
server {
listen 80 default_server;
listen [::]:80 default_server;
root (path to your root folder);
server_name domainname.com;
}
$ sudo nginx -t
$ sudo nginx -s reload
$ sudo certbot --nginx -d domainname.com
server {
listen 80 default_server;
listen [::]:80 default_server;
root (path to your root folder);
server_name domainname.com;
listen 443 ssl; # managed by Certbot
# RSA certificate
ssl_certificate /etc/letsencrypt/live/domainname.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/domainname.com/privkey.pem; # managed by Certbot
location / {
root (path to your django root);
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://localhost:8001;
}
location /static/ {
alias (path to the static folder);
expires 7d;
}
location /media/ {
alias (path to the media folder);
}
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
# Redirect non-https traffic to https
if ($scheme != "https") {
return 301 https://$host$request_uri;
} # managed by Certbot
}
server {
if ($host = domainname.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80 default_server;
listen [::]:80 default_server;
server_name domainname.com;
return 404; # managed by Certbot
}
Reference
이 문제에 관하여(Nginx로 Django 애플리케이션 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ninahwang/deploying-a-django-application-with-nginx-6j4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)