테스트 사이트 - 개발 중인 베타 버전입니다

그누보드5에 어울리는 Caddy 2 설정파일입니다.

· 5년 전 · 2729 · 58

링크에 설치부터 설명까지 다 적어뒀습니다!

 

우분투 20.04에서 Caddy 2를 설치했을 때 기준입니다.

 

설정 수정하기

 

[code]

nano /etc/caddy/Caddyfile

[/code]

 

이제 밑 코드를 그대로 넣으면 됩니다.

 

[code]

# http3를 실험적으로 사용하시려면 밑 옵션을 쓰시면 됩니다. 필요없다면 지워도 됩니다.

{

experimental_http3

}

 

# www를 non-www로 리다이렉트, 반드시 자신의 주소로 변경하기

 

www.example.com {
redir https://example.com{uri}
}

 

# 도메인 네임 지정하기 및 해당 도메인 설정 시작, 반드시 자신의 주소로 변경하기

 

example.com {

 

# 인코딩 방법 지정

 

encode zstd gzip

 

# 사이트 디렉토리 설정 : 자신의 설정으로 변경하세요.

 

root * /var/www/gnuboard

 

# 정적파일 이용가능하게하는 설정

 

file_server

 

# php7.4-fpm 연결

 

php_fastcgi unix//run/php/php7.4-fpm.sock

 

# 로그 설정 DEBUG나 INFO를 선택해서 쓰시면 됩니다.

log {
output file /var/log/caddy/caddy.log {
roll_size 2MiB
}
format json
level DEBUG
}

 

# 보안 헤더 넣기

 

header {
Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
X-XSS-Protection "1; mode=block"
X-Frame-Options SAMEORIGIN
X-Content-Type-Options nosniff
}

 

# 캐시 컨트롤 지정(해당 확장자에 5184000 캐시 컨트롤 지정)

 

@static {
  file
  path *.ico *.css *.js *.gif *.jpg *.jpeg *.png *.svg *.woff *.woff2
}
header @static Cache-Control max-age=5184000

 

# 이미지 불펌 방지 - 반드시 자신의 도메인으로 바꾸세요.

 

@fontPirate {
path /data/*
not header Referer https://example.com*
}

respond @fontPirate "Access denied" 403 {
close
}

 

# 그누보드 짧은 주소 리라이트

 

@content path_regexp content ^/content/([0-9a-zA-Z_]+)$
rewrite @content /bbs/content.php?co_id={re.content.1}&{query}
@title path_regexp title ^/content/([^/]+)/$
rewrite @title /bbs/content.php?co_seo_title={re.title.1}&{query}
@rss path_regexp rss ^rss/([0-9a-zA-Z_]+)$
rewrite @rss /bbs/rss.php?bo_table={re.rss.1}
@board path_regexp board ^/([0-9a-zA-Z_]+)$
rewrite @board /bbs/board.php?bo_table={re.board.1}&{query}
@write path_regexp write ^/([0-9a-zA-Z_]+)/write$
rewrite @write /bbs/write.php?bo_table={re.write.1}&{query}
@seo path_regexp seo ^/([0-9a-zA-Z_]+)/([^/]+)/$
rewrite @seo /bbs/board.php?bo_table={re.seo.1}&wr_seo_title={re.seo.2}&{query}
@id path_regexp id ^/([0-9a-zA-Z_]+)/([0-9]+)$
rewrite @id /bbs/board.php?bo_table={re.id.1}&wr_id={re.id.2}&{query}

 

# 설정 마지막

}

[/code]

 

https://ball.ml

 

여기에 Caddy 2로 돌아가는 그누보드를 볼 수 있습니다.

 

테스트 서버라서 금방 없어질 수 있습니다.

 

 

짧은 주소도 완벽하게 작동합니다.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 58개

@우성짱 또 틀렸네요..


직접 들어 오는 것을 console.log 로 찍어 볼수 없을 까요?

이번에는 ^/([0-9a-zA-Z_]+)/write\??(.*)$

그룹1은 free
그룹2는 ?가 빠집니다. 원래는 / 앞에도 \가 들어가야 되는데 \?가 먹을지 모르겠네요.

rewrite @write /bbs/write.php?bo_table={re.write.1}&{re.write.2}&rewrite=1
@마젠토 음.. 일단 여전히 새글쓰기로 나옵니다.

로그 찍어볼게요!
@우성짱 caddy 2에 로그에는 안 나오나요?
https://caddyserver.com/docs/caddyfile/directives/log
@마젠토 이제 밥 먹고 와서요 ㅎㅎ

바로 볼게요!
@마젠토

로그에는

[10/Jul/2020:03:29:45 +0000] \"GET /free/write?w=u&wr_id=7&page= HTTP/2.0\" 200 5975"

그냥 이렇게 출력이 되네요. 흠...
방금은

[10/Jul/2020:03:30:07 +0000] \"GET /free/write?w=u&wr_id=6&page= HTTP/2.0\" 200 5769

이렇게 찍히기도 하네요!
@우성짱 입력된 것만 찍히네요. rewrite된 것을 확인해야 되는데.. 이론적으로 수정이 되어야 되는데..
혹시 caddy server에 들어가 있는 config 한번 체크해 주세요.
@마젠토 로그 레벨을

log {
output file /var/log/caddy/caddy.log {
roll_size 2MiB
}
format json
}

이렇게 했거든요.

https://caddyserver.com/docs/caddyfile/directives/log

여기 있는대로 했는데... 흠.. 리라이트된 것이 안찍히네요.
@우성짱 궁금점이 갑자기 생기네요..

아래는 아파치인데.. 어떻게 옵션이 넘어 갈까요?
rewrite=1의 의미가 뭐죠? 이 의미가 옵션을 넘겨준다면 말이 되겠죠?


RewriteRule ^([0-9a-zA-Z_]+)/write$ bbs/write.php?bo_table=$1&rewrite=1 [QSA,L]
@마젠토 그런 것 같습니다. 저는 정규식의 1도 몰라서 어렵네요 ㅠㅠ

게시글 목록

번호 제목
2839
2838
2830
2827
2820
2814
2811
2808
2807
2805
2798
2790
2789
2779
2773
2772
2768
2765
2756
2754
2740
2739
2736
2730
2725
2715
2712
2710
2709
2704