사용자 정의 구성을 통한 웹사이트 추가
ServBay는 유연한 웹사이트 추가 방식을 지원합니다. ServBay가 자동으로 관리하는 표준 방식 외에도, “사용자 정의 구성” 모드를 제공합니다. 이 모드를 사용하면 개발자가 특정 웹사이트의 웹 서버(Nginx, Caddy, Apache) 구성 파일을 직접 작성 및 관리할 수 있어, 비표준 세팅이나 정밀한 조정, 고급 기능이 필요한 환경에 최적화된 최대한의 유연성과 제어권을 제공합니다.
사용자 정의 구성의 의미
사용자 정의 구성을 선택하면 다음과 같은 점을 의미합니다:
- 완벽한 제어: 해당 사이트에 대응하는 서버 구성 조각(예: Nginx의
server
블록, Apache의VirtualHost
블록, Caddy의 사이트 정의)을 직접 편집할 수 있습니다. - 고급 기능: 표준 모드에서 설정이 까다로운 복잡한 리라이트 규칙, 특수 프록시, 커스텀 로그 포맷, 특별한 보안 헤더 등 고급 기능을 구현할 수 있습니다.
- 특수 환경 대응: 실제 운영 환경 구성을 모사하거나, 특수 모듈 통합, 심층 디버깅 등 특수 상황에 적합합니다.
단, 이 경우 구성의 정확성 및 보안(SSL 인증서 관리 포함)에 대한 모든 책임은 사용자에게 있습니다.
사용자 정의 구성 웹사이트 추가 단계
- 웹사이트 메뉴 이동: ServBay 왼쪽 메뉴에서
Websites
를 클릭합니다. - 새 웹사이트 추가: 상단의
+
(플러스) 버튼을 클릭합니다. - 기본 정보 입력:
- Name: 웹사이트를 구분하기 쉬운 이름을 지정하세요(예:
My Custom Project
). - Domain: 로컬에서 접근할 도메인명을 입력하세요(예:
myproject.servbay.demo
).
- Name: 웹사이트를 구분하기 쉬운 이름을 지정하세요(예:
- 웹 서버 선택:
Web Server
드롭다운에서 사용할 웹 서버(Nginx, Caddy, Apache) 중 하나를 선택합니다. 이 선택은 매우 중요합니다. 이후 제공되는 구성 템플릿 종류와 웹사이트를 제공할 서버 소프트웨어가 결정됩니다. - 사용자 정의 구성 활성화:
Custom Configuration
체크박스를 선택하세요. - 템플릿 확인 및 수정: 체크 시, 텍스트 영역에 선택한 웹 서버에 맞는 기본 구성 템플릿이 자동 입력됩니다. 이 템플릿을 바탕으로 수정이 필요합니다(대부분 수정을 권장).
구성 템플릿 이해 및 수정
ServBay는 선택한 웹 서버(Nginx, Caddy, Apache)에 따라 서로 다른 구성 템플릿을 제공합니다. 실제 프로젝트에 맞게 템플릿을 수정해야 합니다.
1. Nginx 사용자 정의 구성
Nginx를 선택하면 기본적인 server
블록 템플릿이 제공됩니다.
템플릿 구조 및 주요 지시문:
nginx
# 리슨 포트 및 프로토콜
listen 443 ssl; # HTTPS
# 연결할 도메인
server_name myproject.servbay.demo;
# 웹사이트 루트 디렉토리 (디렉토리 존재 확인 필요)
root /Applications/ServBay/www/myproject.servbay.demo;
# 기본 인덱스 파일
index index.php index.html index.htm;
# SSL/TLS 프로토콜 및 암호화 스위트 (예시)
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
ssl_session_timeout 1d;
ssl_session_cache shared:ServBay:10m;
ssl_session_tickets off;
# SSL 인증서 경로 (HTTPS가 활성화된 경우 직접 지정)
# 【중요】인증서 파일이 존재하고 경로가 정확한지 확인하세요
ssl_certificate /Applications/ServBay/ssl/private/tls-certs/myproject.servbay.demo/myproject.servbay.demo.crt;
ssl_certificate_key /Applications/ServBay/ssl/private/tls-certs/myproject.servbay.demo/myproject.servbay.demo.key;
# PHP 요청 처리 (예시: PHP 8.3, 실제 구성에 맞게 조정 필요)
set $php_version '8.3';
include enable-php-fpm-pathinfo.conf;
# 기타 설정: location 블록, 리라이트 규칙 등
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# 접근 및 에러 로그 경로 (선택 사항)
# access_log /Applications/ServBay/logs/nginx/myproject.servbay.demo-access.log;
# error_log /Applications/ServBay/logs/nginx/myproject.servbay.demo-error.log;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
수정 체크포인트:
server_name
이 도메인과 일치하는지 확인root
경로가 프로젝트 파일 디렉토리를 가리키는지 설정- HTTPS가 필요할 경우
listen 443 ssl;
을 활성화 또는 주석 해제하고, 반드시ssl_certificate
및ssl_certificate_key
경로를 정확하게 설정해야 함 - 필요에 따라 다른 location 블록, 리라이트 규칙, 프록시 설정 등을 추가
2. Caddy 사용자 정의 구성
Caddy를 선택하면 Caddyfile 형식의 사이트 정의 템플릿이 제공됩니다.
템플릿 구조 및 주요 지시문:
nginx
encode zstd gzip
import set-log myproject.servbay.demo # 로그 파일명
import canonical-path
# 웹사이트 루트 디렉토리 (디렉토리 존재 확인 필요)
root * /Applications/ServBay/www/myproject.servbay.demo
# PHP 요청 처리
route {
import php-rewrite-default 8.3 # PHP 버전 8.3
}
# TLS/SSL 설정
# 인증서 경로 지정 필요
# tls /Applications/ServBay/ssl/private/tls-certs/myproject.servbay.demo/myproject.servbay.demo.crt /Applications/ServBay/ssl/private/tls-certs/myproject.servbay.demo/myproject.servbay.demo.key
# 파일 서버 활성화
file_server
# 기타 지시문: reverse_proxy, rewrite, header 등
# ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
수정 체크포인트:
- 최상위 도메인
myproject.servbay.demo
가 올바른지 확인 root
지시문이 프로젝트 디렉토리를 가리키는지 설정- SSL/TLS: Caddy는 기본적으로 도메인에 대한 HTTPS 인증서를 자동 발급하려고 시도합니다. 하지만
.servbay.demo
와 같은 로컬 개발 도메인의 경우 자동 발급이 불가능하므로, HTTPS가 필요하다면tls
지시문을 사용하여 직접 인증서 및 키 파일 경로를 지정해야 합니다. 반드시 파일 존재 및 경로의 정확성을 확인하세요. - 필요에 따라 기타 Caddy 지시문 추가
3. Apache 사용자 정의 구성
Apache를 선택하면 <VirtualHost>
블록 템플릿이 제공됩니다.
템플릿 구조 및 주요 지시문:
apache
ServerName myproject.servbay.demo
DocumentRoot "/Applications/ServBay/www/myproject.servbay.demo"
# SSL 엔진 활성화
SSLEngine on
# SSL 인증서 경로
# 【중요】인증서 파일이 존재하고 경로가 올바른지 확인하세요
SSLCertificateFile "/Applications/ServBay/ssl/private/tls-certs/myproject.servbay.demo/myproject.servbay.demo.crt"
SSLCertificateKeyFile "/Applications/ServBay/ssl/private/tls-certs/myproject.servbay.demo/myproject.servbay.demo.key"
# 디렉토리 권한 설정
<Directory "/Applications/ServBay/www/myproject.servbay.demo">
DirectoryIndex index.php index.html index.htm
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# PHP-FPM 구성 (PHP 8.3)
Define PHP_VERSION 8.3
<FilesMatch \.php$>
SetHandler "proxy:unix:/Applications/ServBay/tmp/php-cgi-${PHP_VERSION}.sock|fcgi://localhost"
</FilesMatch>
# 에러 및 접근 로그 (선택 사항)
ErrorLog "/Applications/ServBay/logs/apache/myproject.servbay.demo-ssl-error_log"
CustomLog "/Applications/ServBay/logs/apache/myproject.servbay.demo-ssl-access_log" common
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
수정 체크포인트:
ServerName
이 도메인과 일치하는지 확인DocumentRoot
가 프로젝트 파일 디렉토리를 가리키는지 확인<Directory>
블록에서 권한 및 옵션 등 제대로 설정- 필요에 따라 기타 Apache 지시문(
RewriteEngine
,ProxyPass
등) 추가
SSL 인증서 관리【중요】
사용자 정의 구성 사용 시, ServBay는 자동으로 SSL 인증서를 생성하지 않습니다(예: ServBay CA 자동 생성 또는 ACME 프로토콜을 통한 Let's Encrypt 인증서 발급).
- 사용자가 직접 SSL 인증서를 준비하거나 발급받아야 합니다. 그 후, 서버에서 접근 가능한 위치에 파일을 배치해야 합니다.
- OpenSSL로 직접 자가 서명 인증서를 생성하거나, ServBay에서 제공하는 CA(ServBay User CA 또는 ServBay Public CA)로 로컬 개발용 인증서를 발급받을 수 있습니다.
- Nginx, Caddy, Apache 사용자 정의 구성에서 반드시
ssl_certificate
와ssl_certificate_key
(Nginx),tls
(Caddy),SSLCertificateFile
및SSLCertificateKeyFile
(Apache) 등 지시문에 올바른 인증서 및 개인키 파일 경로를 지정해야 합니다. - 구성 파일에 SSL 관련 지시문이 있으나 해당 인증서 파일이 없거나 경로가 잘못된 경우, 웹 서버가 정상적으로 시작되지 않거나 웹사이트 접속이 불가합니다. 이때 ServBay 화면이나 서버 로그(평소
/Applications/ServBay/logs/
하위)에 에러 메시지가 표시될 수 있습니다.
로컬 개발 인증서 생성 및 관리 방법은 SSL 인증서 관리 문서를 참고하세요.
웹 서버 소프트웨어 바인딩
DANGER
중요한 점: 특정 웹사이트를 위한 웹 서버(예: Nginx)를 선택하고 사용자 정의 구성으로 저장한 경우, 해당 사이트의 구성은 Nginx에 바인딩됩니다.
- 즉, ServBay의 현재 활성화된 웹 서버 소프트웨어 패키지가 Nginx일 때만 해당 사이트에 정상적으로 접근할 수 있습니다.
- 만약 ServBay의
서비스
-기본 Web 서버
에서 Apache나 Caddy로 변경하면, 해당 Nginx 기반 사용자 정의 사이트는 접근할 수 없습니다(해당 Nginx 구성 로드 안 됨). - 마찬가지로 Caddy나 Apache용 사용자 정의 사이트 역시, 해당 서버가 실행 중일 때에만 정상접속이 가능합니다.
저장 및 적용
모든 구성 수정을 마친 후 오른쪽 하단의 Save
버튼을 클릭하세요. ServBay는 사용자 정의 구성을 저장하고, 변경사항 반영을 위해 해당 웹 서버 재로딩을 시도합니다. 만약 구성에 문법 오류가 있으면 저장에 실패하거나 서버 재로딩이 실패할 수 있습니다. 이런 경우 ServBay 알림 또는 /Applications/ServBay/logs/
하위의 관련 서버 오류 로그를 확인해 문제를 진단하세요.
요약
사용자 정의 구성으로 웹사이트를 추가하면 ServBay 사용자에게 탁월한 유연성과 개별 사이트별 정확한 서버 제어권을 제공합니다. 단, 이에 필요한 웹 서버 구성 지식, 구성의 정확성·안전성 및 SSL 인증서 관리 책임은 개발자 본인에게 있습니다. 템플릿 구조, SSL 요건, 서버 바인딩 메커니즘을 명확히 이해하는 것이 성공적인 활용의 핵심입니다.