-
-
Notifications
You must be signed in to change notification settings - Fork 375
/
caddyfile.actual
142 lines (120 loc) · 2.28 KB
/
caddyfile.actual
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
{
debug
admin off
on_demand_tls {
ask https://example.com
}
log default {
output file /var/log/caddy/access.log
format json
}
auto_https disable_redirects
renew_interval 20m
# this is a comment
servers 192.168.1.2:8080 {
name public
trusted_proxies static private_ranges
log_credentials
}
}
# top level comment
(blocking) {
@blocked {
path *.txt *.md *.mdown /site/*
}
redir @blocked /
}
http://example.com {
respond "http"
}
example.com, fake.org, {$ENV_SITE} {
root * /srv
respond /get-env {$ENV_VAR}
respond /get-env {$ENV_VAR:default}
tls internal
tls /path/to/cert.pem /path/to/key.pem
route {
# Add trailing slash for directory requests
@canonicalPath {
file {
try_files {path}/index.php
}
not path */
}
redir @canonicalPath {path}/ 308
# If the requested file does not exist, try index files
@indexFiles {
file {
try_files {path} {path}/index.php index.php
split_path .php
}
}
rewrite @indexFiles {http.matchers.file.relative}
# Proxy PHP files to the FastCGI responder
@phpFiles {
path *.php
}
reverse_proxy @phpFiles unix//var/run/php7.4-fpm.sock {
transport fastcgi {
split .php
}
}
}
@encode_exts {
path / *.html *.js *.css *.svg
}
header {
X-Content-Type-Options nosniff
X-XSS-Protection "1; mode=block"
X-Robots-Tag none
Content-Security-Policy "frame-ancestors 'self'"
X-Frame-Options DENY
Referrer-Policy same-origin
}
@singleLine not path /matcher
respond @singleLine "Awesome."
import blocking
import blocking foo
import glob/*
file_server
@named host example.com
handle @named {
handle /foo* {
handle /foo* {
respond "{path} foo"
}
}
respond "foo"
}
handle_path /foo* {
respond "foo"
}
reverse_proxy /api/* unix//var/run/api.sock {
@good status 200
handle_response @good {
rewrite * /foo{uri}
file_server
}
}
respond <<HTML
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<h1>Hello, world!</h1>
</body>
</html>
HTML 200
@file `file()`
@first `file({'try_files': [{path}, {path} + '/', 'index.html']})`
@smallest `file({'try_policy': 'smallest_size', 'try_files': ['a.txt', 'b.txt']})`
@without-both {
not {
path /api/*
method POST
}
}
path_regexp [<name>] <regexp>
}