반응형
Nginx 설치
# nginx 설치 : 80번 포트에서 구동된다.
sudo apt install -y nginx
리버스 프록시로 장고로 요청 전달
# nginx 파일을 만들어서 아래의 내용을 작성후 파일을 이동시켜준다.
vim nginx.conf
sudo mv nginx.conf /etc/nginx/sites-available/default
# /etc/nginx/sites-enabled/default
server {
server_name _;
server_tokens off;
location / {
# 원래 요청의 Host 헤더를 전달
proxy_set_header Host $http_host;
# 원래 요청의 프로토콜(http/https)을 전달 => 이 헤더를 전달하면 HTTPS 서비스 시에 CSRF_TRUSTED_ORIGINS 설정을 하지 않아도 CSRF Token 검증 오류가 발생하지 않습니다.
proxy_set_header X-Forwarded-Proto $scheme;
# 실제 클라이언트의 실제 IP를 전달
proxy_set_header X-Real-IP $remote_addr;
# 요청이 여러 프록시 서버를 거치는 경우, 각 프록시 서버의 주소를 목록으로 지정
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 요청을 전달할 백엔드
proxy_pass http://django_service;
# 장고 응답의 Location 응답 헤더 수정하지 않고, 그대로 전달하기
proxy_redirect off;
}
}
# 여러 개의 백엔드 서버를 그룹화하여 요청을 분산 처리
upstream django_service {
server localhost:8080;
}
설정 파일의 오류 검증 & 적용
# 설정 파일의 오류를 검증
sudo nginx -t
# nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
# nginx: configuration file /etc/nginx/nginx.conf test is successful
# 처리 중인 연결은 그대로 처리하고, 새로운 연결에 대해서는 새 설정을 적용
# 이에 반해 restart 명령은 서비스 재시작 (잠재적인 문제나 메모리 누수 등의 이슈를 해결할 수도)
sudo systemctl reload nginx
요청 Body 크기 제한하기
/etc/nginx/sites-enabled/defaut 파일안에 client_max_body_size 1M; 옵션을 추가해주면 된다.
반응형
'인프라 > Nginx' 카테고리의 다른 글
[Nginx] Nginx를 통한 static/media 파일 서빙 (0) | 2024.08.07 |
---|---|
[Nginx] Nginx란 무엇인가? (0) | 2024.08.06 |