웹서버 미니랩
같은 경로, 세 서버가 고르는 블록은 다릅니다
nginx 는 우선순위로 하나를 고르고, Apache 는 맞는 섹션을 전부 합치고, Caddy 는 설정을 먼저 정렬한 뒤 첫 매칭 하나만 실행합니다.
실제 서버를 실행하지 않습니다. 각 서버 공식 문서에 적힌 매칭 규칙만 재현한 교육용 모델입니다.
이 경로가 깨는 오해: “가장 긴 매칭이 이긴다”
nginx선택
우선순위에 따라 location 하나만 고른다
location = /healthz {안 맞음return 200 "ok"
location ^~ /static/ {안 맞음root /var/wwwexpires 30d
location /api/v1/ {후보(짐)proxy_pass http://v1_backend
location /api/ {후보(짐)proxy_pass http://api_backend
location ~ \.php$ {적용됨fastcgi_pass php:9000
location ~* \.(js|css)$ {검사 안 함expires 7d
location / {후보(짐)root /var/www/html
결과부터 보는 중
버튼을 누르면 이 결과에 도달하는 과정을 하나씩 볼 수 있어요.
최종 적용되는 설정
| 지시어 | 값 | 준 블록 | 합쳐지는 방식 |
|---|---|---|---|
fastcgi_pass | php:9000 | n5 | 선택된 location 의 설정이 그대로 쓰입니다 |
이 데모의 범위 밖: Alias·.htaccess·try_files 재진입·rewrite 이후 재매칭·가상호스트 선택, 그리고 %XX·..·연속 슬래시 정규화. nginx 의 전위 매칭 대소문자는 Linux 기준입니다. Caddy 정렬은 길이가 같은 matcher 의 타이브레이크까지 문서로 확정되지 않아, 이 설정에 대해 caddy adapt(v2.11.4)로 확인한 순서를 그대로 씁니다.
출처 · nginx location · Apache 섹션 병합 · Caddyfile 디렉티브
실험을 마쳤다면