Commit e018522
authored
fix(caddy): isolate routes by listen port to prevent wildcard conflicts (#63)
* fix(caddy): isolate routes by listen port to prevent wildcard conflicts
Previously, all ingress routes were placed in a single Caddy server with
multiple listen addresses. This caused conflicts when multiple wildcard
ingresses matched the same hostname pattern on different ports (e.g.,
*.host.kernel.sh:443 and *.host.kernel.sh:3000), because Caddy evaluated
routes without considering the request's listening port.
This change creates separate Caddy servers for each unique listen port,
ensuring that requests on port 3000 only see routes meant for port 3000,
and requests on port 443 only see routes meant for port 443.
Example before (broken):
servers:
ingress:
listen: [":443", ":3000"]
routes:
- match: *.host.kernel.sh -> port 80 # Always wins
- match: *.host.kernel.sh -> port 3000 # Never reached
Example after (fixed):
servers:
ingress-443:
listen: [":443"]
routes:
- match: *.host.kernel.sh -> port 80
ingress-3000:
listen: [":3000"]
routes:
- match: *.host.kernel.sh -> port 3000
This enables apps to expose multiple ports (e.g., 3000, 8080) via wildcard
ingresses without conflicts.
* fix: disable automatic HTTPS for ports without TLS routes
For non-TLS ingresses on non-standard ports, Caddy needs automatic HTTPS
completely disabled, not just redirects disabled. Previously the code
only disabled HTTPS completely for port 80, but any port without TLS
routes should have it disabled.
This fixes the integration tests that create non-TLS ingresses on random
high ports.1 parent 81c03b9 commit e018522
2 files changed
Lines changed: 189 additions & 79 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
11 | 10 | | |
12 | 11 | | |
13 | 12 | | |
| |||
195 | 194 | | |
196 | 195 | | |
197 | 196 | | |
| 197 | + | |
| 198 | + | |
198 | 199 | | |
199 | 200 | | |
200 | 201 | | |
201 | | - | |
202 | | - | |
203 | | - | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
204 | 206 | | |
205 | | - | |
| 207 | + | |
| 208 | + | |
206 | 209 | | |
207 | 210 | | |
208 | 211 | | |
209 | 212 | | |
210 | | - | |
211 | 213 | | |
212 | 214 | | |
213 | 215 | | |
| |||
256 | 258 | | |
257 | 259 | | |
258 | 260 | | |
259 | | - | |
| 261 | + | |
| 262 | + | |
260 | 263 | | |
261 | 264 | | |
262 | | - | |
263 | | - | |
264 | | - | |
265 | | - | |
| 265 | + | |
| 266 | + | |
266 | 267 | | |
267 | 268 | | |
268 | 269 | | |
269 | 270 | | |
270 | 271 | | |
| 272 | + | |
| 273 | + | |
271 | 274 | | |
272 | 275 | | |
273 | | - | |
| 276 | + | |
274 | 277 | | |
275 | | - | |
276 | 278 | | |
277 | 279 | | |
278 | 280 | | |
| |||
291 | 293 | | |
292 | 294 | | |
293 | 295 | | |
294 | | - | |
| 296 | + | |
295 | 297 | | |
296 | 298 | | |
297 | 299 | | |
298 | 300 | | |
299 | 301 | | |
300 | 302 | | |
301 | 303 | | |
302 | | - | |
303 | | - | |
304 | 304 | | |
305 | 305 | | |
306 | 306 | | |
| |||
321 | 321 | | |
322 | 322 | | |
323 | 323 | | |
324 | | - | |
325 | | - | |
326 | 324 | | |
327 | | - | |
| 325 | + | |
| 326 | + | |
328 | 327 | | |
329 | | - | |
| 328 | + | |
330 | 329 | | |
| 330 | + | |
| 331 | + | |
331 | 332 | | |
332 | 333 | | |
333 | | - | |
334 | 334 | | |
335 | | - | |
336 | 335 | | |
337 | 336 | | |
338 | 337 | | |
| |||
351 | 350 | | |
352 | 351 | | |
353 | 352 | | |
354 | | - | |
| 353 | + | |
| 354 | + | |
355 | 355 | | |
356 | | - | |
357 | | - | |
358 | 356 | | |
359 | | - | |
360 | | - | |
361 | | - | |
362 | | - | |
363 | | - | |
364 | | - | |
365 | | - | |
366 | | - | |
367 | | - | |
368 | | - | |
369 | | - | |
| 357 | + | |
| 358 | + | |
370 | 359 | | |
371 | 360 | | |
372 | 361 | | |
| |||
377 | 366 | | |
378 | 367 | | |
379 | 368 | | |
380 | | - | |
381 | | - | |
382 | | - | |
383 | | - | |
384 | | - | |
385 | | - | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
386 | 374 | | |
387 | | - | |
388 | | - | |
389 | | - | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
390 | 381 | | |
391 | | - | |
392 | | - | |
| 382 | + | |
393 | 383 | | |
394 | 384 | | |
395 | 385 | | |
| |||
402 | 392 | | |
403 | 393 | | |
404 | 394 | | |
405 | | - | |
406 | 395 | | |
407 | | - | |
| 396 | + | |
| 397 | + | |
408 | 398 | | |
409 | | - | |
410 | | - | |
411 | | - | |
412 | | - | |
413 | | - | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
414 | 406 | | |
415 | | - | |
416 | | - | |
417 | | - | |
418 | | - | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
419 | 419 | | |
420 | | - | |
421 | 420 | | |
422 | | - | |
423 | | - | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
424 | 425 | | |
425 | 426 | | |
426 | 427 | | |
427 | | - | |
428 | | - | |
429 | | - | |
| 428 | + | |
430 | 429 | | |
431 | 430 | | |
432 | 431 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
295 | 295 | | |
296 | 296 | | |
297 | 297 | | |
298 | | - | |
| 298 | + | |
299 | 299 | | |
300 | 300 | | |
301 | 301 | | |
302 | 302 | | |
303 | 303 | | |
304 | 304 | | |
305 | 305 | | |
306 | | - | |
307 | | - | |
308 | 306 | | |
309 | | - | |
310 | | - | |
311 | | - | |
312 | | - | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
313 | 325 | | |
314 | 326 | | |
315 | 327 | | |
| |||
731 | 743 | | |
732 | 744 | | |
733 | 745 | | |
734 | | - | |
735 | | - | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
736 | 749 | | |
737 | | - | |
| 750 | + | |
738 | 751 | | |
739 | 752 | | |
740 | 753 | | |
| |||
891 | 904 | | |
892 | 905 | | |
893 | 906 | | |
894 | | - | |
895 | | - | |
896 | | - | |
897 | | - | |
898 | | - | |
| 907 | + | |
| 908 | + | |
| 909 | + | |
| 910 | + | |
| 911 | + | |
| 912 | + | |
| 913 | + | |
| 914 | + | |
| 915 | + | |
| 916 | + | |
| 917 | + | |
| 918 | + | |
| 919 | + | |
| 920 | + | |
| 921 | + | |
| 922 | + | |
| 923 | + | |
| 924 | + | |
| 925 | + | |
| 926 | + | |
| 927 | + | |
| 928 | + | |
| 929 | + | |
| 930 | + | |
| 931 | + | |
| 932 | + | |
| 933 | + | |
| 934 | + | |
| 935 | + | |
| 936 | + | |
| 937 | + | |
| 938 | + | |
| 939 | + | |
| 940 | + | |
| 941 | + | |
| 942 | + | |
| 943 | + | |
| 944 | + | |
| 945 | + | |
| 946 | + | |
| 947 | + | |
| 948 | + | |
| 949 | + | |
| 950 | + | |
| 951 | + | |
| 952 | + | |
| 953 | + | |
| 954 | + | |
| 955 | + | |
| 956 | + | |
| 957 | + | |
| 958 | + | |
| 959 | + | |
| 960 | + | |
| 961 | + | |
| 962 | + | |
| 963 | + | |
| 964 | + | |
| 965 | + | |
| 966 | + | |
| 967 | + | |
| 968 | + | |
| 969 | + | |
| 970 | + | |
| 971 | + | |
| 972 | + | |
| 973 | + | |
| 974 | + | |
| 975 | + | |
| 976 | + | |
| 977 | + | |
| 978 | + | |
| 979 | + | |
| 980 | + | |
| 981 | + | |
| 982 | + | |
| 983 | + | |
| 984 | + | |
| 985 | + | |
| 986 | + | |
| 987 | + | |
| 988 | + | |
| 989 | + | |
| 990 | + | |
| 991 | + | |
| 992 | + | |
| 993 | + | |
| 994 | + | |
| 995 | + | |
| 996 | + | |
| 997 | + | |
| 998 | + | |
| 999 | + | |
| 1000 | + | |
| 1001 | + | |
| 1002 | + | |
| 1003 | + | |
| 1004 | + | |
| 1005 | + | |
| 1006 | + | |
| 1007 | + | |
| 1008 | + | |
| 1009 | + | |
899 | 1010 | | |
900 | 1011 | | |
901 | 1012 | | |
| |||
0 commit comments