ServBay에서 사이트 리디렉션 설정하기
사이트 리디렉션은 방문자를 한 URL에서 다른 URL로 자동으로 안내하는 프로세스입니다. 로컬 개발 환경에서 리디렉션을 설정하는 것은 실제 운영 환경의 동작을 시뮬레이션하거나, URL 구조 변경을 테스트하거나, 이전 링크가 새 개발 버전에서도 계속 작동하는지 확인할 때 매우 중요합니다. ServBay는 강력한 로컬 웹 개발 환경으로, 통합 웹 서버(Caddy 또는 Nginx)를 통해 사이트 리디렉션을 손쉽게 설정할 수 있도록 해줍니다.
개요
ServBay에서는 생성된 각 사이트마다 독립적인 웹 서버 설정 파일이 관리됩니다. 리디렉션은 해당 웹 서버의 설정 파일을 수정함으로써 구현할 수 있습니다. ServBay는 Caddy와 Nginx를 웹 서버로 지원하며, 프로젝트의 요구나 개인적 선호에 따라 하나를 선택할 수 있습니다. 리디렉션 설정은 일반적으로 원본 URL 패턴과 대상 URL, 그리고 리디렉션 타입(예: 301 영구 리디렉션, 302 임시 리디렉션)을 지정하는 과정입니다.
적용 시나리오
로컬 개발에서 ServBay의 리디렉션 설정을 활용하는 일반적인 예시는 다음과 같습니다:
- 운영 환경 시뮬레이션: 운영 서버의 리디렉션 규칙과 동일하게 로컬 환경을 구성합니다.
- HTTPS 테스트: 모든 HTTP 요청을 HTTPS로 강제 리디렉션하여 안전한 연결을 시뮬레이션합니다.
- URL 정규화:
www
가 있는 도메인을 없는 도메인으로 또는 그 반대로 리디렉션하여 URL 일관성을 확보합니다. - URL 구조 변경 처리: 사이트의 경로 또는 구조를 수정할 때, 이전 URL을 새 URL로 리디렉션해 "페이지를 찾을 수 없음" 오류를 방지합니다.
- 도메인 이전 테스트: 이전 도메인이 새 도메인으로 리디렉션되는 상황을 모의실험할 수 있습니다.
사전 준비
ServBay에서 사이트 리디렉션을 설정하려면 아래 조건이 필요합니다:
- ServBay가 설치 및 실행 중이어야 합니다.
- ServBay에 리디렉션을 적용할 사이트가 추가 및 기본 설정되어 있어야 합니다.
- 해당 사이트가 Caddy 또는 Nginx 중 어떤 웹 서버를 사용하는지 파악해야 합니다.
설정 방법
ServBay는 사이트별로 개별 웹 서버 설정 파일을 제공합니다. ServBay UI를 통해 언제든지 이 설정 파일에 쉽게 접근하고 편집할 수 있습니다.
사이트 설정 파일 열기
- ServBay 앱을 엽니다.
- 왼쪽 내비게이션 바에서 사이트(Website) 메뉴를 클릭합니다.
- 리디렉션을 설정할 사이트를 찾아 이름을 클릭해 상세 페이지로 이동합니다.
- 사이트 상세 페이지에서 “설정 파일” 또는 유사한 옵션을 찾아 클릭합니다(위치나 명칭은 ServBay 버전에 따라 다를 수 있음). 이를 통해 해당 사이트의 웹 서버 설정 파일이 열립니다.
이제 사이트가 Caddy인지 Nginx인지에 따라 아래의 안내에 따라 설정을 진행하세요.
Caddy를 이용한 리디렉션 설정
사이트가 Caddy 웹 서버를 사용한다면, 해당 사이트의 Caddyfile을 수정해야 합니다. Caddyfile은 문법이 간단하고 이해하기 쉽습니다.
아래는 대표적인 Caddy 리디렉션 설정 예시입니다. 이 설정들은 일반적으로 사이트 주소 블록({}
) 내부에 추가합니다.
예시 1: HTTP에서 HTTPS로 리디렉션
Caddy는 기본적으로 SSL 인증서(ServBay User CA 또는 ACME 인증)만 설정되어 있으면 HTTP에서 HTTPS로 자동 리디렉션을 처리합니다. 보다 세밀한 제어나 수동 설정이 필요하다면 redirect
지시어를 사용할 수 있습니다:
bash
servbay.demo {
# ... 기타 설정 ...
# 모든 HTTP 요청을 HTTPS로 강제 리디렉션
# ServBay의 SSL 기능을 사용한다면, 보통 이 규칙은 직접 추가하지 않아도 됩니다
# 커스텀 설정이 필요한 경우 아래와 같이 추가하세요:
redir http://servbay.demo https://servbay.demo{uri} permanent
# ... 기타 설정 ...
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
예시 2: 비-www에서 www로 리디렉션
servbay.demo
를 www.servbay.demo
로 리디렉션:
bash
servbay.demo {
# servbay.demo로 들어오는 모든 요청을 www.servbay.demo로 영구적으로 리디렉션
redir https://www.servbay.demo{uri} permanent
}
www.servbay.demo {
# www.servbay.demo의 정상 사이트 설정
root * /Applications/ServBay/www/your-servbay-demo-site
file_server
# ... 기타 설정 ...
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
예시 3: www에서 비-www로 리디렉션
www.servbay.demo
를 servbay.demo
로 리디렉션:
bash
www.servbay.demo {
# www.servbay.demo로 들어오는 모든 요청을 servbay.demo로 영구적으로 리디렉션
redir https://servbay.demo{uri} permanent
}
servbay.demo {
# servbay.demo의 정상 사이트 설정
root * /Applications/ServBay/www/your-servbay-demo-site
file_server
# ... 기타 설정 ...
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
예시 4: 특정 경로 리디렉션
기존 /old-path
를 새 /new-path
로 리디렉션:
bash
servbay.demo {
# ... 기타 설정 ...
# /old-path를 /new-path로 영구적으로 리디렉션
redir /old-path /new-path permanent
# /deprecated/page.html을 /new/page/로 임시 리디렉션
redir /deprecated/page.html /new/page/ temporary
# ... 기타 설정 ...
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
Caddy 리디렉션 타입
permanent
: 301 영구 리디렉션(SEO에 유리)temporary
: 302 임시 리디렉션internal
: 내부 재작성(실제 HTTP 리디렉션 아님, URL 변경 없음)
Caddyfile을 수정한 후 파일을 저장하면, ServBay가 자동으로(혹은 안내 메시지와 함께) Caddy 설정을 다시 불러오게 됩니다.
Nginx를 이용한 리디렉션 설정
사이트가 Nginx 웹 서버를 사용한다면, 해당 사이트의 Nginx 설정 파일(보통 .conf
파일)을 수정해야 합니다. Nginx는 return
또는 rewrite
지시어로 리디렉션을 구현합니다. 단순한 고정 리디렉션에는 return
이, 더 복잡한 패턴 매칭에는 rewrite
가 추천됩니다.
아래는 대표적인 Nginx 리디렉션 설정 예시입니다. 이 설정들은 보통 server
블록 내부에 추가합니다.
예시 1: HTTP에서 HTTPS로 리디렉션
사이트가 80, 443 포트를 모두 수신하는 경우, 80포트의 server
블록에서 아래처럼 리디렉션 규칙을 추가할 수 있습니다:
nginx
server {
listen 80;
listen [::]:80;
server_name servbay.demo www.servbay.demo;
# 모든 HTTP 요청을 HTTPS로 리디렉션
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name servbay.demo www.servbay.demo;
# ... HTTPS 사이트의 기타 설정 ...
# ssl_certificate ...;
# ssl_certificate_key ...;
# 웹 루트 등
root /Applications/ServBay/www/your-servbay-demo-site;
index index.html index.htm index.php;
# ... 기타 location 블록 등 ...
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
예시 2: 비-www에서 www로 리디렉션
servbay.demo
를 www.servbay.demo
로 리디렉션:
nginx
server {
listen 80;
listen [::]:80;
server_name servbay.demo; # 비-www 도메인 리스닝
# 모든 요청을 www 서브도메인으로 리디렉션, URI 및 프로토콜 보존
return 301 $scheme://www.servbay.demo$request_uri;
}
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name www.servbay.demo; # www 도메인 리스닝
# ... www 사이트의 정상 설정 ...
# ssl_certificate ...;
# ssl_certificate_key ...;
root /Applications/ServBay/www/your-servbay-demo-site;
index index.html index.htm index.php;
# ...
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
예시 3: www에서 비-www로 리디렉션
www.servbay.demo
를 servbay.demo
로 리디렉션:
nginx
server {
listen 80;
listen [::]:80;
server_name www.servbay.demo; # www 도메인 리스닝
# 모든 요청을 비-www 도메인으로 리디렉션, URI 및 프로토콜 보존
return 301 $scheme://servbay.demo$request_uri;
}
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name servbay.demo; # 비-www 도메인 리스닝
# ... 비-www 사이트의 정상 설정 ...
# ssl_certificate ...;
# ssl_certificate_key ...;
root /Applications/ServBay/www/your-servbay-demo-site;
index index.html index.htm index.php;
# ...
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
예시 4: 특정 경로 리디렉션 (location
블록과 return
/rewrite
활용)
기존 /old-path
를 새 /new-path
로 리디렉션:
nginx
server {
# ... 기타 server 설정 ...
location = /old-path {
# /old-path와 정확히 일치하는 요청을 /new-path로 영구 리디렉션
return 301 /new-path;
}
location /deprecated/ {
# /deprecated/ 이하의 모든 요청을 /archive/로 임시 리디렉션
rewrite ^/deprecated/(.*)$ /archive/$1 temporary;
}
# ... 기타 location 블록 ...
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Nginx 리디렉션 타입
301
: 영구 리디렉션302
: 임시 리디렉션redirect
: 302와 동일permanent
: 301과 동일
Nginx 설정 파일을 수정한 후 파일을 저장하면, ServBay가 자동으로(혹은 안내 메시지와 함께) Nginx 설정을 다시 불러오게 됩니다.
유의사항
- 설정 파일 백업: 설정 파일을 수정하기 전에 반드시 원본을 백업해두세요. 문제가 생기면 쉽게 복구할 수 있습니다.
- 문법 검사: 설정 파일을 변경한 후에는 반드시 문법 오류가 없는지 확인하세요. ServBay는 저장 시 기본적인 검사를 수행하지만, 직접 점검하면 더 안전합니다. Nginx의 경우
nginx -t
명령어(시스템 PATH에 Nginx가 있거나 ServBay가 제공하는 터미널)로 확인 가능합니다. - 리디렉션 테스트: 설정 후에는 브라우저에서 www 유무, HTTP/HTTPS, 특정 경로 등 다양한 조건으로 리디렉션이 정상 동작하는지 철저히 확인하세요.
- 브라우저 캐시: 브라우저는 301 영구 리디렉션을 캐시합니다. 규칙을 자주 변경하는 테스트 과정에서는 캐시로 인해 결과가 달라질 수 있습니다. 이럴 땐 캐시 삭제, 시크릿 모드, 브라우저 개발자도구의 캐시 비활성화 옵션 등을 사용하세요. 임시 테스트일 경우 302 리디렉션을 사용하고, 확정된 후 301로 변경하는 것도 좋습니다.
- ServBay 재로드: 설정 파일을 수정한 후 반드시 ServBay가 웹 서버 설정을 성공적으로 재적용했는지 확인하세요. ServBay가 자동으로 처리하긴 하지만, UI에 안내 메시지나 재시작 버튼이 있을 수 있습니다.
자주 묻는 질문 (FAQ)
Q: 리디렉션 설정을 했는데 브라우저에서 이동이 되지 않아요.
A: 다음과 같은 원인이 있을 수 있습니다:
- 설정 파일 오류: 수정한 설정 파일의 문법이 올바른지, 저장에 실패하지 않았는지 확인하세요.
- ServBay의 미적용: ServBay가 새로운 설정을 적용했는지 확인하세요.
- 브라우저 캐시: 캐시를 삭제하거나 시크릿 모드로 테스트하세요.
- URL 일치 문제: 리디렉션 규칙에 명시한 경로나 도메인과 실제 접속 URL이 정확히 일치하는지 확인하세요.
Q: 301과 302 리디렉션의 차이는? 로컬 개발에는 어떤 것을 써야 하나요?
A: 301은 영구 리디렉션으로, 브라우저 및 검색 엔진에 리소스가 새 위치로 이동했음을 알리며 SEO에도 유리합니다. 302는 임시 리디렉션으로, 특정 상황에서만 잠시 이동합니다. 로컬 개발 및 테스트용으로는 302가 더 편리하며(Browser 캐시가 적용되지 않음), 실제 운영 환경을 모의하는 리디렉션이 필요하다면 301을 사용하세요.
Q: 설정 파일을 수정하니 ServBay에서 오류가 뜨거나 웹 서버가 시작되지 않아요.
A: 일반적으로 설정 파일 문법 오류입니다. 추가 또는 수정한 부분을 Caddyfile이나 Nginx 공식 문법과 비교하며 점검하고, ServBay의 로그를 참고해 에러 원인을 찾으세요.
정리
ServBay에서 사이트 리디렉션을 설정하는 것은 로컬 개발에서 자주 사용되는 작업입니다. Caddy 또는 Nginx의 설정 파일을 직접 수정하여 손쉽게 구현할 수 있습니다. 운영 환경 시뮬레이션, HTTPS 테스트, URL 구조 변경 등 다양한 목적으로 활용할 수 있으며, 각 웹 서버의 리디렉션 문법(redir
for Caddy, return
/rewrite
for Nginx)을 익히는 것이 효율적인 작업의 열쇠입니다. 설정 후 충분히 테스트하고, 브라우저 캐시의 영향도 늘 염두에 두세요.