본문 바로가기

nginx7

nginx는 왜 필요할까? nginx.conf 예시를 통해 알아보자 Nginx는 비동기 이벤트 기반 모델을 사용하는 경량 HTTP 서버이자 리버스 프록시 서버입니다. Nginx를 이해하기전의 웹의 작동방식을 살펴봅시다. 웹의 작동방식 브라우저가 DNS 서버로 이동하여 실제주소를 찾는다 브라우저는 HTTP 요청 메시지를 서버로 전송하여 웹사이트의 복사본을 클라이언트에게 보내도록 요청 이 메시지와 클라이언트와 서버간에 전송되는 모든 데이터는 TCP/IP를 사용하여 인터넷 연결을 통해 전송 서버가 클라리언트의 요청을 승인하면 "200" 메시지를 클라이언트에게 발송 웹 사이트의 파일을 패킷이라고 불리는 일련의 작은 덩어리로 브라우저에 보냄 브라우저는 작은 덩어리를 완전한 웹페이지로 조립하여 사용자에게 표시 HTTP server(Web Serer) 소프트웨어 관점: 클라이언트로부.. 2024. 4. 18.
Docker-Compose를 이용하여 Nginx와 Certbot으로 HTTPS 활성화하기 서론 Docker와 Docker-Compose를 이용하여 Nginx와 Certbot을 구성하는 방법은 웹 애플리케이션의 배포 및 관리를 간소화합니다. 이 방법을 사용하면, SSL/TLS 인증서의 설치와 갱신을 자동화하여, 보다 안전하게 웹 애플리케이션을 운영할 수 있습니다. 본 글에서는 Docker-Compose를 사용하여 Nginx 서버에 Certbot을 설치하고 HTTPS를 활성화하는 과정을 단계별로 설명하겠습니다. 필요 조건 Docker 및 Docker-Compose가 설치된 시스템 유효한 도메인 이름과 해당 도메인의 DNS 설정이 완료된 상태 Docker-Compose 파일 설정 먼저, docker-compose.yml 파일을 생성하고 Nginx와 Certbot 서비스를 정의합니다. 아래는 간단한.. 2024. 4. 16.
Django 프로젝트 Docker를 사용하여 배포하기 목차 Docker가 없는 배포 처음 Django 웹 애플리케이션을 배포할 때 Docker없이 EC2에 아래의 패키지와 파일을 생성하여 관리해야 했었다. /home/usr/projects/django: 프로젝트 소스코드 /home/usr/venvs/django: 프로젝트 가상환경 /home/usr/venvs/django.env: 가상환경 실행 명령어 /home/usr/venvs/django.sh: 가상환경 실행 및 gunicorn 실행 자동화 /etc/nginx/sites-enabled: nginx 파일 보통 로컬에서 개발과 테스트를 마치고 서버환경에서 개발에 사용된 도구(Django, nginx 등)에 대한 버전을 맞추어 설치해 주고 설정파일들을 작성해주어야 합니다. 이 과정을 Docker가 대신한다면 .. 2024. 4. 16.
nginx, root와 alias 차이와 사용법(예시 포함) Nginx에서 'root'와 'alias'를 처음 마주했을 때 경로를 지정하는데 꽤 많이 시간을 잡아 먹었다. 그래서 그 차이를 확실히 짚고 가고자 한다. 차이 root는 설정된 경로에 요청된 URL의 경로를 추가하여 파일을 찾는다. URL의 전체 경로가 파일 시스템의 경로에 직접 매핑 된다. alias는 'location'에 지정된 경로를 제외하고, URL의 나머지 부분을 alias에 지정된 경로에 매핑하는 것이다. 예시 nginx.conf: server { listen 80; server_name example.com; location /static/ { alias /home/app/static_files/; } location /images/ { root /home/app/static; } } 간단.. 2024. 4. 12.
letsencrypt를 통해 nginx에 SSL/TLS인증서 적용하기 1. letsencrypt 설치 1) Let'Ecrypt란? Let's Encrypt는 사용자에게 무로 SSL/TSL 인증서를 제공하는 비영리 인증 기관입니다. 장점!! (1) 무료 인증서 발급: 모든 사용자에게 무료로 인증서 제공 (2) 자동화: 인증서 발급, 설치, 갱신 과정을 자동화할 수 있습니다. (3) 간편한 설치 및 유지: Cerbot과 같은 클라이언트를 사용하여, 명령어 몇 줄로 인증서를 발급받고 설치할 수 있습니다. (4) 보안강화: SSL/TLS 인증서를 통해 웹사이트의 데이터 전송이 암호화되어 사용자의 정보가 보호 됩니다. (5) 브라우저 호환성: Let's Encrypt에서 발급한 인증서는 대부분의 주요 웹 브라우저에서 인정받고 있습니다. (6) 커뮤니티 지원: 풍부한 지식이 공유되어.. 2024. 4. 8.
Django, gunicorn + nginx를 사용하여 안정적으로 배포(Ubuntu) 0. 개요 Django로 웹 애플리케이션을 개발했다면, 이제 프로덕션 환경에서 안정적으로 배포하고 사용자에게 서비스를 제공해야 할 때입니다. 개발 서버인 python manage.py runserver로는 충분하지 않습니다. 이 블로그 게시물에서는 Django 애플리케이션을 Gunicorn과 Nginx를 사용하여 프로덕션 환경으로 안전하게 배포하는 방법을 소개합니다. 거의 필수 겠지만 AWS EC2 등과 같은 클라우드 환경에서 진행하셔야 24시간 구동 가능한 서버를 만들 수 있습니다. 1. Gunicorn Gunicorn(Green Unicorn)은 Python 웹 애플리케이션을 서빙하기 위한 WSGI HTTP 서버 개발 서버보다 안정적이며 병렬 처리를 지원하여 높은 트래픽을 처리 2. Nginx Ngi.. 2024. 4. 7.
Django 배포의 시작, 웹 서버 선택하기:Ngnix vs Apache(Ubuntu, Apache 에러날 경우 아래 링크 확인) 0. 개요 Django애플리케이션 배포를 도와는 툴에는 Nginx와 Apache가 있다고 한다. 이 두 툴은 무엇을 하는지 차이는 무엇인지 알아보자. 1. Apache 1) Apache란? 인터넷을 통해 액세스되는 웹 콘텐츠를 제공하기 위해 개발 월드 와이드 웹의 초기 성장에 핵심적인 역할 개방형 개발자 커뮤니티에서 개발 및 유지 관리하는 오픈소스 소프트웨어 연결을 수락하고 동시성을 관리 특정 Apache 배포는 보안 기능, 동적 콘텐츠 관리 또는 기본 HTTP 요척과 같은 다양한 모듈을 포함하도록 구성할 수 있다. 2. Nginx 1) Nginx이란? Apache 웹 서버의 성능 제한을 해결하기 위해 특별히 자성 성능과 확장성은이벤트 드라이브 n 아키텍처에서 비롯. Apache의 연결당 프로세스 또는 .. 2024. 4. 7.