윈도우 장비에서 웹 서버 띄워서 간단한 테스트해 볼 일 있을 때 워낙 가볍고 설정 쉬워서 Caddy 를 가끔씩 사용했었다.
- Caddy : Caddy 2 is a powerful, enterprise-ready, open source web server with automatic HTTPS written in Go
내 컴에서 그럴 일 생겨서 설치, 실행했는데 아래 같은 에러 나면서 실행이 안된다.
% caddy run
run: loading initial config: loading new config: starting caddy administration endpoint: listen tcp 127.0.0.1:2019: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
다른 프로세스가 이미 포트 사용하는건 아닌가 싶어 우선 확인.
% netstat -ano | findstr :2019
아무런 프로세스도 잡히지 않는다.
할 수 없이 검색.
답변보면 'Windows 10 Update KB4074588' 이 후부터 일부 포트 제한 설정되어서 애플리케이션에서 사용 불가란다.
사용 제한된 포트 구역은 다음 명령으로 확인해 볼 수 있다고 한다.
% netsh interface ipv4 show excludedportrange protocol=tcp
내 컴에서는 1984 ~ 2083 번대 포트가 결과에 포함되어 있다는 걸 확인할 수 있었는데 그러면 Caddy 의 관리용 기본 포트인 2019 를 변경해주면 되지 않을까 싶어서 설정 방법을 찾아보았다.
있을텐데, 있을텐데 ... 눈에 안 띈다.
그나마 글로벌 옵션으로 admin 기능 사용하지 않도록 하는 방법이 있다는 것 확인하고 설정 변경
{
# Turn on all debug log
# debug
# Turn off admin port
admin off
}
:8091 {
encode zstd gzip
root * d:\caddy\www
file_server
templates
handle_errors {
rewrite * /{http.error.ststus_code}.html
file_server
}
log {
output file D:\caddy\logs\access.log {
roll true
roll_size_mb 5
roll_gzip true
roll_local_time trueroll_keep 2
roll_keep_days 1
}
}
}
':포트' 이하 부분은 간단히 정적 파일 사용 가능한 웹 서버 띄우는 설정이고 그 윗 부분이 글로벌 옵션 설정한 곳.
% caddy reload
이제 별 문제 없이 실행된다.
덧.
우연히 알게 된건데 wsl 설치되어 있다면 wsl 명령어로 설치된 리눅스 실행 파일 실행이 가능한 듯.
가령, findstr 명령 대신 이렇게도 가능하다.
% netstat -ano | wsl grep :2019