728x90
반응형

nginx 7

[Nginx, React, Docker] 웹서버와 웹 프로젝트 컨테이너 분리하기

우선 분리한 이유기존에는 react + nginx를 합쳐서 프론트엔드 빌드가 끝나면 nginx를 실행하는 방식을 사용했다. 이렇게 하게 되면 불편한 점이: 프론트엔드 빌드가 실패하면 그대로 전체 서버가 죽어버린다.프론트엔드 빌드는 실패해도 기존의 정적 파일을 서빙하는데기존 컨테이너 방식으로는 nginx가 프엔 빌드 실패 시 실행을 안 해서 서빙을 못 한다.게다가 nginx가 리버스 프록싱도 같이 하기 때문에 백엔드 서버 게이트웨이가 죽어버리면................. 이런 이유로 분리했다. 기존의 docker-compose.yml의 client 부분services: client: build: context: ./client dockerfile: Dockerfile c..

[Nginx, WebSocket] Invalid character found in method name [ ]. HTTP method n

GPT를 그렇게 돌렸는데 뭐가 문제였을까나이게 그 서버는 https를 원하는데 http가 와서 에러가 계속 났었다나의 경우에는 STOMP 소켓은 당시 http였고일반 WebSocket은 https여서그런가 이런 에러가 났던거다결과적으로는 nginx 패스를 하도록 location에 해당 소켓 엔드포인트를 추가하고, worker_processes auto;error_log /var/log/nginx/error.log;pid /run/nginx.pid;events { worker_connections 1024;}http { include /etc/nginx/mime.types; default_type application/octet-stream; limit_req_zone $..

[Docker, AWS, Jenkins, Spring Boot, Nginx, React, MySQL, Redis, RTMP/HLS] 프로젝트 인프라 세팅하기 (1) - nginx.conf, Dockerfile, Docker compose 작성

2년 반 만의 인프라 세팅이다.2년 전에는 그냥 api테스트하려고 docker썼는데 이번엔 좀 다르다. 0. 폴더 구조├── aws (키 보관, gitignore 설정으로 레포에 올라가지 않음)├── client│ ├── Client project│ ├── Dockerfile├── db│ ├── init.sql (DDL 정의 - schema) ├── hls (폴더 이하 내용은 방송 시작 시 생성, 종료 시 삭제됨) │ ├── 스트리밍key-스트림번호.ts│ ├── 스트리밍key.m3u8├── media├── nginx│ ├── default.conf # client 요청 처리할 웹서버│ ├── rtmp.conf # nginx-rtmp 전용├── server│ ├── Server project├── .gi..

[Docker, AWS, Django, Nginx, Gunicorn, React, MySQL] AWS EC2 이용해서 서버 세팅하기 (2) - docker-compose.yml, 프리티어로 AWS 인스턴스 생성

글의 길이가 길어서 2개의 게시글로 나누었습니다. (1)편 https://yourhyeony.tistory.com/61 5. docker-compose.yml 작성 version: '3' services: db: # MySQL 컨테이너 image: mysql:8.0.22 # MySQL 8.0.22 이미지 사용 container_name: my01 # 컨테이너 이름 지정 command: mysqld --character-set-server=utf8 --collation-server=utf8_general_ci --default-authentication-plugin=mysql_native_password # 캐릭터셋 유니코드로 변경하고 비밀번호 관련 설정... ports: - "3306:3306" # 33..

[Docker, AWS, Django, Nginx, Gunicorn, React, MySQL] AWS EC2 이용해서 서버 세팅하기 (1) - db, nginx, dockerfile 작성

1. 사용한 기술 스택 및 파일 구조 기술 스택 프론트는 React 백엔드는 Django 미들웨어로 Gunicorn을 사용하고, 웹서버로 Nginx Docker로 컨테이너화한 뒤 AWS에서 EC2로 배포했습니다. 파일 구조 우선 이것은 나의 프로젝트 파일 구조! client는 프론트엔드(리액트), nginx는 서버 설정 파일, db는 데이터베이스 설정 파일(스키마 생성만 있음), server는 백엔드(장고) 파일이다. 디렉토리의 세부 구조이다. server 폴더 안은 이렇게 이루어져 있고, key.json은 시크릿키랑 api키를 모아두었다. requirements.txt는 config 폴더 안에 넣어두었다. 우선 도커파일은 /server 에만 작성했다. 모델 설치하면서 필요한 작업이 늘어났기 때문이다. ..

[Nginx, Django] Nginx로 Django media url 지정하기

Nginx에서는 미디어 경로를 따로 설정해주지 않으면 Django media url이 정상적으로 작동하지 않는다. 나의 경우 2개의 설정을 모두 적용해야 이미지가 정상적으로 보였다. 1. 미디어 경로 설정 Nginx의 설정 파일에 미디어 관련 url을 지정하는 방법이다. 나는 서비스를 프론트엔드(client), 백엔드(server), db, nginx 4개의 컨테이너로 분리했다. 따라서 nginx 서버의 루트 url은 프론트엔드의 빌드 파일을, api 아래는 백엔드 api를 설정하고, api로 요청이 들어오면 8000번 포트로 넘겨주도록 파일을 설정했다. 따라서 이미지에 대한 요청도 모두 8000번 포트로 넘겨주어야 한다. nginx/default.conf upstream api { server serv..

728x90
반응형