Linux 환경에서 Nginx와 PHP의 일반적 설정

시나리오 설정 하나의 서버에 두 개의 독립적인 프로젝트(웹사이트) site1과 site2가 있다고 가정해 봅시다. 서버에서는 Nginx를 HTTP 서버로 사용하고 PHP로 동적 콘텐츠를 처리합니다. Nginx 설정 Nginx의 기본 설정 파일은 /etc/nginx/nginx.conf에 위치하며, include 지시어를 사용하여 여러 특정 설정을 가져와 각 프로젝트를 관리할 수 있습니다. include의 기본 ...

6월 14일 01:58에 게시됨

OpenResty에서의 Lua 템플릿 렌더링 기법

템플릿 기반 동적 페이지 생성 웹 애플리케이션 개발에서 동적 컨텐츠 생성은 핵심 요소입니다. 예를 들어, 상품 정보 페이지처럼 복잡한 데이터 구조를 포함하는 시나리오에서는 템플릿 엔진이 필수적입니다. OpenResty 환경에서는 lua-resty-template라는 고성능 템플릿 엔진을 활용할 수 있으며, 이는 LuaJIT과 함께 사용 시 매우 빠른 렌더링 성능을 제공합니다. 이 ...

6월 13일 16:50에 게시됨

nginx ip-hash 로드 밸런싱 불균형 원인 및 해결 방법

ip-hash 알고리즘의 동작 방식 nginx의 ip-hash 기반 로드 밸런싱은 요청의 클라이언트 IP 주소를 기반으로 후방 서버에 요청을 분산합니다. 내부적으로는 다음과 같은 해시 계산을 수행합니다: for (;;) { for (i = 0; i < 3; i++) { hash = (hash * 113 + ip_addr[i]) % 6271; } p = hash % peers_count; n = p / (8 * sizeof(uintptr_t)); ...

6월 12일 23:41에 게시됨

Nginx와 Lua를 활용한 맞춤형 WAF 구현

Nginx와 Lua를 활용한 맞춤형 WAF 구현 기능 목록 IP 화이트리스트와 블랙리스트 기능 지원, 블랙리스트에 등록된 IP 접근 차단 URL 화이트리스트 지원, 필터링이 필요 없는 URL 정의 User-Agent 필터링, 사용자 정의 규칙과 일치하는 항목 처리 후 403 반환 CC 공격 방어, 특정 URL에 대한 시간당 접근 횟수 제한 초과 시 403 반환 쿠키 필터링, 사 ...

6월 12일 16:11에 게시됨

Nginx 로그 분석을 위한 리눅스 명령어 모음

IP 분석 관련 명령어 웹 서버의 접근 패턴을 파악하기 위해 IP 기반 통계를 활용할 수 있다. 전체 요청 수 카운트 (페이지 뷰, PV) awk '{print $7}' access.log | wc -l 고유 방문자 수 산출 (UV) cut -d' ' -f1 access.log | sort | uniq | wc -l 특정 시간대(IPv4 주소 기준) 접속량 확인 (예: 오전 4~5시) grep "05/Oct/2018:0[4-5]" access.log ...

6월 9일 16:01에 게시됨

쇄락 문제: 개념, 재현 및 해결 방법

Nginx와 Workerman과 같은 많은 네트워크 서버는 단일 마스터-다중 워커 프로세스 모델을 사용합니다. 마스터 프로세스는 리스닝 소켓을 생성하고 워커 프로세스를 생성하며 관리합니다. 워커 프로세스는 마스터 프로세스가 fork 시스템 호출을 통해 생성되므로 마스터 프로세스의 리스닝 소켓을 상속받아 각 워커 프로세스가 독립적으로 클라이언트 연결을 수신하고 처리 ...

6월 8일 19:08에 게시됨

Nginx에서 백엔드 서버의 상태를 감지하여 장애 노드로의 요청 분배를 자동으로 차단하는 방법

서비스 안정성을 높이기 위해 Nginx는 백엔드 서버의 상태를 감지하고, 장애가 발생한 노드로 요청을 보내지 않도록 구성할 수 있습니다. 이를 위한 두 가지 접근 방식은 다음과 같습니다: 수동(패시브) 상태 확인: Nginx 기본 기능만으로 구현 가능하며, 소규모 또는 중간 규모 환경에 적합합니다. 능동(액티브) 상태 확인: 외부 모듈을 통해 주기적으로 백엔드 상태를 ...

6월 8일 18:33에 게시됨

Tomcat 8 + Memcached 기반 세션 클러스터링 구현 가이드

1. 사전 준비 사항 모든 서버의 시간 동기화 (ntpdate 등 활용, 타임존 확인 필수) 방화벽 비활성화 또는 필요한 포트(nginx 80, memcached 11211, tomcat 8080 등) 오픈 필요 소프트웨어: nginx, memcached, tomcat 8, Java 8 이상 2. Nginx 및 Memcached 설치 및 구성 Nginx와 Memcached는 패키지 매니저(yum/apt)로 간단히 설치할 수 있습니다. yum install nginx m ...

6월 7일 16:21에 게시됨

CentOS 7에서 LNMP 스택 설치하기

CentOS 7에 Nginx, MariaDB, PHP(LNMP) 스택을 설치하는 방법을 단계별로 설명합니다. 1. CentOS 서드파티 Yum 저장소 설정 CentOS 기본 저장소에는 Nginx 패키지가 포함되어 있지 않으므로, Atomic 서드파티 저장소를 추가합니다. [root@localhost ~]# yum install wget -y [root@localhost ~]# wget http://www.atomicorp.com/installers/atomic [root@localhost ~]# s ...

6월 4일 16:06에 게시됨

Ubuntu 서버에서 CTC 음성 활성화 모델의 고가용성 배포 방법

CTC 음성 활성화 모델을 Ubuntu 서버에 고가용성으로 배포하는 방법 1. 개요 음성 활성화 기술은 스마트 스피커나 모바일 어시스턴트 등 다양한 분야에서 사용되고 있다. 그러나 실제 운영 환경에서는 이 서비스가 24시간 안정적으로 작동하도록 보장하는 것이 큰 도전이 된다. 본 문서에서는 Ubuntu 서버에 고가용성 CTC 음성 활성화 모델을 배포하는 방법을 단계별로 안 ...

6월 3일 19:03에 게시됨