IT/Deploy6 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. Github Action를 사용한 배포 자동화, CI/CD 파이프라인 구축 1. CI/CD Pipline이란? 1) CI/CD 파이프라인 소프트웨어 개발 과정에서 중요한 역할을 하는 자동화 시스템입니다. CI(Continuous Intergration)는 지속적 통합을, CD(Continuouous Deployment, Continuous Delivery)는 지속적 배포 또는 지속적 전달을 의미합니다. 2) CI 개발자들은 코드 변경 사항을 주기적으로 중앙 저장소(예: Git)에 병합합니다. 이 때, 자동화 된 빌드 및 테스트가 실행되어 새로운 코드가 기존 코드와 잘 통합되는지 확인힙니다. CI의 목적은 버그를 빠르게 발견하고 해결하여 소프트웨어의 품질을 유지하는 것입니다. 3) CD-Continuous Deploymoent 이 과정에서는 자동화된 테스트를 통과한 코드가 자동으.. 2024. 4. 12. 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. 이전 1 다음