도구(Tools & Infra)/Devops & Deployment

Nginx란?Nginx는 웹 서버 소프트웨어이다.웹 서버는 클라이언트의 HTTP 요청을 받아 HTML 문서나 다른 파일들을 반환하는 역할을 수행한다.Nginx는 이런 웹 서버의 기능을 수행할 뿐만 아니라, 리버스 프록시, 로드 밸런서, 메일 프록시 등의 기능도 제공한다.웹 서버Nginx는 빠르고 안정적인 웹 서버로 알려져 있다.정적 파일을 효율적으로 처리할 수 있으며, 동시에 수많은 연결을 처리할 수 있는 능력이 있다.리버스 프록시클라이언트가 요청을 보냈을 때, 이 요청을 실제 서버에게 전달하고, 실제 서버의 응답을 클라이언트에게 다시 전달하는 역할을 한다. 이를 통해 서버의 보안을 강화하거나, 클라이언트에게는 하나의 서버로 보이게 하면서 실제로는 여러 서버에 요청을 분산시키는 등의 기능을 구현할 수 있..
이 글은 최주호님의 Youtube 도커 강의를 통해 학습한 내용을 정리하여 작성합니다. Docker Compose - React & Spring & MySQL 구조 1. React: 화면 (프론트엔드) 2. Spring: 서버 (백엔드) 3. MySQL: 데이터베이스 Nginx 프록시 서버(80) -> React(3000) -> Spring(8080) -> MySQL(3306) Cross-Origin CORS 설정 대신 Nginx에 proxy_pass 설정을 함으로써 Cross-Origin 문제를 해결한다. Cross-Origin Cross-Origin이란 "다른 출처"를 가리키며, 웹 개발 컨텍스트에서는 한 출처(origin)에서 로드된 웹 페이지나 애플리케이션이 다른 출처의 리소스에 접근하는 것을 의..
이 글은 최주호님의 Youtube 도커 강의를 통해 학습한 내용을 정리하여 작성합니다. Docker Compose - Spring & MySQL 전체 구조 docker-test-server Dockerfile FROM openjdk:11-jdk-slim WORKDIR /app # COPY만 docker-compose 파일의 위치를 기반으로 작동한다. COPY . . # RUN은 현재 파일을 위치를 기반으로 작동한다. RUN chmod +x ./gradlew RUN ./gradlew clean build ENV JAR_PATH=/app/build/libs RUN mv ${JAR_PATH}/*.jar /app/app.jar ENTRYPOINT [ "java", "-jar", "-Dspring.profiles..
이 글은 최주호님의 Youtube 도커 강의를 통해 학습한 내용을 정리하여 작성합니다. Docker-Compose 기본 Docker Compose 공식 문서 https://docs.docker.com/compose/gettingstarted/ Try Docker Compose docs.docker.com 개요 실습 전체 구조 docker-compose.yml services: mysqldb: image: mysql restart: always volumes: - mysql-compose-volume:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=root1234 - MYSQL_DATABASE=rootdb ports: - "3307:3306" volumes: my..
docker file - MySQL 환경변수와 볼륨연결 MySQL 환경변수 설정 및 실행 Dockerfile FROM mysql ENV MYSQL_USER=jun ENV MYSQL_PASSWORD=jun1234 ENV MYSQL_ROOT_PASSWORD=root1234 ENV MYSQL_DATABASE=jundb CMD ["--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci"] 실행 원격접속 그리고 utf8 설정이 잘 되었는지 확인하기 위해 다음 명령어를 통해 확인해본다. SHOW VARIABLES LIKE 'character_set_%' 환경변수 확인 MySQL 볼륨 현재 Docker Desktop을 확인해보면 다음과 같이 볼..
docker file - nginx 게이트웨이 사용하기 매번 실행된 컨테이너의 IP 주소를 docker inspect 명령어를 통해 알아내는 것은 매우 번거롭다. 이러한 문제를 해결하기 위해 게이트웨이를 사용할 수 있다. nginx.conf upstream server1 { server 172.17.0.1:8081; } upstream server2 { server 172.17.0.1:8082; } server { listen 80; server_name localhost; # localhost:8000/server1 location /server1 { proxy_pass http://server1/; } location /server2 { proxy_pass http://server2/; } } ups..
docker file - nginx를 로비 서버로 활용하기 전체 구조 이때 server1과 server2를 다음과 같이 각각 실행할 수 있다. 하지만 이렇게 각각의 서버를 따로 실행시키는 것은 번거롭다. 그래서 Nginx 서버를 로빈 서버로 사용해본다. 이때 LB는 프록시 서버 역할을 수행한다. 단일 진입점 역할을 수행한다. 프록시 서버 프록시 서버는 클라이언트와 원격 서버 간의 중개 역할을 수행하는 서버이다. 클라이언트가 프록시 서버에 요청을 보내면, 프록시 서버는 해당 요청을 대신하여 원격 서버로 전달하고, 원격 서버의 응답을 클라이언트에게 반환한다. 이를 통해 클라이언트와 원격 서버 간의 직접적인 통신을 우회하고, 다양한 기능을 제공하거나 보안 및 성능 개선을 위해 사용된다. 프록시 서버는 다음과 ..