nginx

    [kubernetes] Helm으로 nginx ingress controller 설치하기

    [kubernetes] Helm으로 nginx ingress controller 설치하기

    일반적으로 사용하는 helm의 stable repo가 업데이트를 중단했고, k8s는 빠르게 업데이트 되는 중이다. stable/nginx-ingress는 사용하기엔 너무 옛날 버전이라서, k8s에서 따로 배포하는 ingress-nginx repo를 사용해 ingress-controller를 설정해 보았다. nginx pod와 service 생성 # mynginx.yaml apiVersion: v1 kind: Pod metadata: labels: run: mynginx name: mynginx spec: containers: - image: nginx:1.16 name: mynginx resources: {} restartPolicy: Always --- apiVersion: v1 kind: Servic..

    리버스 프록시의 정의와 설정 방법

    리버스 프록시의 정의와 설정 방법

    리버스 프록시는 클라이언트의 요청과 서버의 응답을 중개한다. 주로 NGINX 또는 apache를 사용한다. Nginx의 특징 1. HTTP 서버 클라이언트(유저)로부터 요청을 받았을 때 WAS를 거치지 않고 요청에 맞는 정적 파일을 응답해주는 HTTP server로서 활용할 수 있다. HTML, CSS 같은 정적인 리소스에 대한 요청을 Nginx가 처리해준다. React의 build 된 파일들도 정적인 리소스라고 볼 수 있고, 따라서 Nginx가 index.html 같은 메인 페이지를 랜더링 해줄 수 있다. 2. 리버스 프록시 서버, 로드밸런싱 Nginx는 클라이언트의 요청을 적절한 WAS로 분산하기 위해 로드 밸런싱을 수행하여 성능, 확장성 및 신뢰성을 향상시킬 수 있다. 3. 캐싱 Nginx를 리버스..

    [Docker] 컨테이너 기능별, 포트별 분리 (feat. nginx)

    QuantManegement 퀀트 투자의 간편화 quant.or.kr 현재 진행중인 프로젝트 웹 페이지이다. 페이지를 구성하기 위해서는 현재 상장된 약 2400개 기업의 재무제표를 모두 크롤링 해와야 한다. 단순히 빠르게 크롤링 하려면 파이썬의 병렬 스레드나 멀티 프로세싱 기술을 사용해서 크롤링 하면 수십만개의 재무제표를 크롤링 하는데 그리 오랜 시간이 걸리지 않을 것이다. 하지만 크롤링을 하기위해서 접근하는 opendart 페이지와 opendart의 api를 사용하기 위해서는 1분당 접근이 1000회를 넘어가서는 안되며 하루에 10000번으로 접근횟수가 제한되어있다. 따라서 재무제표 크롤링은 시간을 들여야하는 조심스러운 작업이라고 생각했고, 크롤링을 위한 컨테이너를 따로 만들어줘서 안정적인 크롤링 환경..

    [Nginx] ip_hash method 주의사항 (backup X)

    일기식 Nginx.conf 파일에서 upstream server를 정의하는곳에서 발생한 오류이다. upstream quant { # default = round_robbin; # least_conn; ip_hash; server quant_home1:8000; server quant_home2:8001; server quant_home3:8002; server quant_backup:8003 backup; } 현재 진행중인 프로젝트의 서버를 포트 4개로 나눠서 서비스하려고 했다. 3개의 컨테이너는 round-robbin 방식으로 서로 균등하게 부하는 나눠가지는 방법을 선택했고, 만약 모든 컨테이너가 오류가 나서 사용하지 못하는 상황이라면 8003번 포트의 컨테이너를 backup 서버로 지정해 두었기 때문..

    [Nginx] Nginx HTTPS 및 cerbot SSL 인증서 적용

    certbot 컨테이너를 사용해 SSL 인증서 발급받기 백엔드의 비즈니스 로직을 마무리했다면 내 기준 가장 중요하다고 생각하는 배포 단계가 남아있다. 클라우드에 WAS 서버를 올리고, Nginx를 연결해 80번 포트로 통신하게 둔다면 편하게 웹사이트 hyeo-noo.tistory.com 위 포스팅을 따라서 인증서를 발급받고 난 후 Nginx.conf 파일을 어떻게 설정해 주면 되는지에 대한 글이다. Nginx 파일 worker_processes auto; events{ worker_connections 1024; use epoll; } http { upstream quant { server quant_home:8000; } client_max_body_size 100M; server{ listen 443..

    [Docker] certbot 컨테이너를 사용해 SSL 인증서 발급받기

    [Docker] certbot 컨테이너를 사용해 SSL 인증서 발급받기

    백엔드의 비즈니스 로직을 마무리했다면 내 기준 가장 중요하다고 생각하는 배포 단계가 남아있다. 클라우드에 WAS 서버를 올리고, Nginx를 연결해 80번 포트로 통신하게 둔다면 편하게 웹사이트를 구동할 수 있다. 하지만 http로만 통신할 수 있는 웹 사이트는 어딘가 불안정해 보인다. 기본적인 암호화가 제공되지 않기 때문에 로그인을 할 때마다 비밀번호 노출에 대한 위험을 항상 감수해야 할 것이다. 따라서 앞으로 배포할 모든 서비스에 대해서 나는 SSL + HTTPS로 배포할 것이다. SSL 인증서를 발급받기 위해서 무료로 인증서를 발급해주는 기관인 'Let's Encrypt'가 공식적으로 지원하는 certbot을 사용할 것이다. Certbot의 도메인 인증 절차 인증서를 발급받기 전에 certbot이 ..

    [Nginx] 웹 서버 Nginx 에 대해서...

    [Nginx] 웹 서버 Nginx 에 대해서...

    최근 수정일: 2022/05/24 Django로 구축한 API 서버와 React를 연결하고 배포하기 위해서 Nginx를 사용해보았다. Django와 React를 연결하기 위해서 웹 서버와 Nginx에 대한 이해가 반드시 필요했고, 앞으로 Nginx를 공부하며 알게 되는 지식들을 최대한 자세히 이 포스팅에 담을 예정이다. 그리고 Nginx만 다루는 게 아니라 웹 서버의 전반적인 이해를 위해서 조금이라도 궁금한 점이 생기면 옆길로 계속 새어나갈 예정이다. Nginx란? #1 간단히 말해서 경량화된 소프트웨어 웹 서버이다. Nginx는 Single-thread로 동작하며 비동기 non-blocking I/O 이벤트 기반으로 요청을 처리한다. 따라서 적은 자원으로 효율적인 트래픽 처리가 가능하다. (멀티 스레드..

    [Docker] Nginx 웹서버 구동해보기

    [Docker] Nginx 웹서버 구동해보기

    컨테이너에 대하여 [Container 시리즈] 00. Container/ Docker란 뭔가요? Container / Docker 컨테이너.. 들어봤는데 무엇인지 잘 모르겠다..라고 생각하시는 분들을 위하여 이 글을 연재합니다. 1. Container 보통 IT인이 아니라고 한다면 '컨테이너' 라는 말을 듣는다면 다음의 tech.osci.kr 이미지에 대하여 도커 컨테이너(Container)와 이미지(Image)란? 도커(Docker)는 Immutable Infrastructure Paradigm 이라는 개념을 기반으로 하기 때문에, 서비스 환경(서비스 인프라) 부분을 이미지화(실행파일화)하여 배포한 뒤 가급적 변경하지 않고 사용한다고 이전 hoon93.tistory.com Nginx 이미지를 받아와서 ..