유닉스 소켓을 통한 서비스 연동: 성능과 TCP 오버헤드 감소의 장점

유닉스 소켓을 통한 서비스 연동: 성능과 TCP 오버헤드 감소의 장점 소규모 서버에서 성능을 극대화하고 TCP 오버헤드를 줄이기 위한 방법 중 하나는 유닉스 소켓(Unix Socket)을 사용하는 것. 특히 같은 서버에서 돌아가는 PHP-FPM, Nginx, PostgreSQL, Redis 등의 서비스들이 있다면, 이들을 유닉스 소켓으로 연결하는 것이 상당한 이점이 있다. 유닉스 소켓이란? 유닉스 소켓은 로컬 프로세스 간 통신(IPC, Inter-Process Communication)을 … Read more

리눅스의 내부 네트워크 트래픽 처리하기 위해 iptables에 대해 알아보자.

리눅스의 내부 네트워크 트래픽 처리하기 위해 iptables에 대해 알아보자 iptables는 리눅스에서 네트워크 트래픽을 관리하는 방화벽 도구로, 패킷 필터링을 통해 네트워크 접근을 제어한다. iptables는 각 패킷을 체인(chain)과 룰(rule)이라는 규칙에 따라 처리한다. 체인은 INPUT, OUTPUT, FORWARD 등으로 나뉘며, 패킷이 해당 체인에 들어올 때 정의된 룰에 따라 행동을 결정한다. 기본적인 iptables 사용법 iptables는 크게 3개의 테이블로 나뉜다: filter: … Read more

BoringSSL vs quictls vs OpenSSL for supporting HTTP/3

NGINX 1.27.1에서 HTTP/3 지원을 위해 사용할 수 있는 TLS 라이브러리로 BoringSSL, quictls, 그리고 OpenSSL 3.3.2(3.2부터 지원)가 있다. 각 라이브러리는 HTTP/3 프로토콜을 구현하는 데 필수적인 QUIC 지원을 포함하며, 성능과 보안성 측면에서 차이가 있다. 1. BoringSSL Google에서 관리하는 오픈소스 라이브러리로, 성능 최적화에 강점이 있다. BoringSSL은 불필요한 기능을 제거해 가볍고 빠른 처리를 목표로 한다. 주로 Chromium 프로젝트 및 … Read more

PHP-FPM의 성능 최적화

PHP-FPM의 pm.max_children 설정 찾기 (PHP 8.x 기준) PHP-FPM (FastCGI Process Manager)은 PHP 애플리케이션을 실행할 때 서버 성능을 최적화하는 데 중요한 역할을 합니다. 특히 pm.max_children 설정은 서버의 성능과 안정성에 큰 영향을 미치기 때문에 적절한 값을 찾는 것이 중요합니다. 이 글에서는 PHP 8.x 기준으로 pm.max_children 값을 설정하는 방법을 알아보겠습니다. PHP-FPM의 작동 방식 PHP-FPM은 PHP 요청을 처리하기 위해 … Read more

macOS에서 Redis 서버 설치 및 설정하기

1. Homebrew 설치 Homebrew를 사용하여 Redis를 설치하려면 먼저 Homebrew를 설치해야 합니다. 터미널을 열고 다음 명령어를 입력합니다. 2. Redis 설치 Homebrew를 설치했다면, Redis를 설치합니다. 다음 명령어를 실행하세요. 3. Redis 실행 및 구성 Redis를 설치한 후에는 Redis 서버를 실행하고 설정해야 합니다. Redis의 설정 파일은 /usr/local/etc/redis.conf에 있습니다. 4. Redis 암호 설정 Redis를 보안 목적으로 암호로 보호하려면 다음 단계를 … Read more

Transparent Proxy 투명 프록시란?

투명프록시란 무엇인가? 인라인 프록시, 가로채기 프록시, 강제 프록시등으로 부르기도 하는 투명프록시는 다양한 이름들에서 알 수 있듯이 사용자의 기기와 인터넷 사이의 연결을 특별한 설정없이 가로챈다. 이렇게 설정하기 위해 오픈소스인 Squid 프록시 서버가 가장 많이 쓰인다. 예를 들어보자, 어떤 사용자가 회사의 내부망에서 인터넷을 사용한다. 그 사람이 imbc.com의 뉴스기사를 보려고 하면 집에서 보는 것과 동일한 기사를 보게된다. 그렇지만, … Read more

ZeroTier vs. Tailscale

As modern enterprises migrate to cloud-based services and remote work, fortified corporate walls are deteriorating, and so is the use for a traditional VPN. Network architects are embracing a new “zero trust” approach, which means physical networks cannot be trusted, and every device must always be end-to-end encrypted and authenticated. People want to be able … Read more

공개 키 암호화 방식 (PKI)

공개 키 암호화 방식은 데이터 통신의 보안을 유지하기 위한 암호화 기술 중 하나입니다. 이 방식은 암호화와 복호화를 위해 두 개의 서로 다른 키를 사용합니다. 이 방식에서는 공개 키(public key)와 개인 키(private key)라는 두 개의 키를 사용합니다. 공개 키는 누구나 알 수 있는 공개된 정보이며, 개인 키는 암호화와 복호화를 수행하는 사람만 알고 있는 비밀 정보입니다. 데이터를 … Read more

도커 데스크톱의 내부 네트워크 구조

TCP/IP 컨테이너가 외부 인터넷에 연결할 때는 TCP/IP를 사용합니다. 리눅스 컨테이너에는 리눅스 커널이 필요하기 때문에, 도커 데스크톱에는 리눅스 VM이 포함되어 있고 따라서 컨테이너의 트래픽은 호스트 자체에서가 아닌 리눅스 VM에서 발생하기 때문에 문제를 일으키곤 한다. 기업에서 VPN을 사용하는 경우 “VPN을 통해 호스트에서 발생하는 트래픽만 전달하도록” VPN 정책을 만든다. 이는 호스트가 실수로 라우터처럼 작동하여 인터넷에서 내부 네트워크로 연결되는 … Read more

Table of Contents

Index