본문 바로가기

카테고리 없음

[팁]Caddy 실행 오류 수정 및 wsl 명령어 사용법

윈도우 장비에서 웹 서버 띄워서 간단한 테스트해 볼 일 있을 때 워낙 가볍고 설정 쉬워서 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