@marcel91200 / caddy Mirror · read-only
Fork 0

Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS

Mirrored from https://github.com/Slazee/caddy.git

Synced Nov 11, 01:00 UTC

master
caddyfiletest 251 lines 5.94 KB
Raw
1 app.example.com {
2 forward_auth authelia:9091 {
3 uri /api/authz/forward-auth
4 copy_headers Remote-User Remote-Groups Remote-Name Remote-Email
5 }
6
7 reverse_proxy backend:8080
8 }
9 ----------
10 {
11 "apps": {
12 "http": {
13 "servers": {
14 "srv0": {
15 "listen": [
16 ":443"
17 ],
18 "routes": [
19 {
20 "match": [
21 {
22 "host": [
23 "app.example.com"
24 ]
25 }
26 ],
27 "handle": [
28 {
29 "handler": "subroute",
30 "routes": [
31 {
32 "handle": [
33 {
34 "handle_response": [
35 {
36 "match": {
37 "status_code": [
38 2
39 ]
40 },
41 "routes": [
42 {
43 "handle": [
44 {
45 "handler": "vars"
46 }
47 ]
48 },
49 {
50 "handle": [
51 {
52 "handler": "headers",
53 "request": {
54 "delete": [
55 "Remote-Email"
56 ]
57 }
58 }
59 ]
60 },
61 {
62 "handle": [
63 {
64 "handler": "headers",
65 "request": {
66 "set": {
67 "Remote-Email": [
68 "{http.reverse_proxy.header.Remote-Email}"
69 ]
70 }
71 }
72 }
73 ],
74 "match": [
75 {
76 "not": [
77 {
78 "vars": {
79 "{http.reverse_proxy.header.Remote-Email}": [
80 ""
81 ]
82 }
83 }
84 ]
85 }
86 ]
87 },
88 {
89 "handle": [
90 {
91 "handler": "headers",
92 "request": {
93 "delete": [
94 "Remote-Groups"
95 ]
96 }
97 }
98 ]
99 },
100 {
101 "handle": [
102 {
103 "handler": "headers",
104 "request": {
105 "set": {
106 "Remote-Groups": [
107 "{http.reverse_proxy.header.Remote-Groups}"
108 ]
109 }
110 }
111 }
112 ],
113 "match": [
114 {
115 "not": [
116 {
117 "vars": {
118 "{http.reverse_proxy.header.Remote-Groups}": [
119 ""
120 ]
121 }
122 }
123 ]
124 }
125 ]
126 },
127 {
128 "handle": [
129 {
130 "handler": "headers",
131 "request": {
132 "delete": [
133 "Remote-Name"
134 ]
135 }
136 }
137 ]
138 },
139 {
140 "handle": [
141 {
142 "handler": "headers",
143 "request": {
144 "set": {
145 "Remote-Name": [
146 "{http.reverse_proxy.header.Remote-Name}"
147 ]
148 }
149 }
150 }
151 ],
152 "match": [
153 {
154 "not": [
155 {
156 "vars": {
157 "{http.reverse_proxy.header.Remote-Name}": [
158 ""
159 ]
160 }
161 }
162 ]
163 }
164 ]
165 },
166 {
167 "handle": [
168 {
169 "handler": "headers",
170 "request": {
171 "delete": [
172 "Remote-User"
173 ]
174 }
175 }
176 ]
177 },
178 {
179 "handle": [
180 {
181 "handler": "headers",
182 "request": {
183 "set": {
184 "Remote-User": [
185 "{http.reverse_proxy.header.Remote-User}"
186 ]
187 }
188 }
189 }
190 ],
191 "match": [
192 {
193 "not": [
194 {
195 "vars": {
196 "{http.reverse_proxy.header.Remote-User}": [
197 ""
198 ]
199 }
200 }
201 ]
202 }
203 ]
204 }
205 ]
206 }
207 ],
208 "handler": "reverse_proxy",
209 "headers": {
210 "request": {
211 "set": {
212 "X-Forwarded-Method": [
213 "{http.request.method}"
214 ],
215 "X-Forwarded-Uri": [
216 "{http.request.uri}"
217 ]
218 }
219 }
220 },
221 "rewrite": {
222 "method": "GET",
223 "uri": "/api/authz/forward-auth"
224 },
225 "upstreams": [
226 {
227 "dial": "authelia:9091"
228 }
229 ]
230 },
231 {
232 "handler": "reverse_proxy",
233 "upstreams": [
234 {
235 "dial": "backend:8080"
236 }
237 ]
238 }
239 ]
240 }
241 ]
242 }
243 ],
244 "terminal": true
245 }
246 ]
247 }
248 }
249 }
250 }
251 }