'Caddy file server browse not working when I root a specific directory
Here is my Caddyfile:
aruiplex.com {
encode gzip
file_server /files/* {
root /files
browse
}
reverse_proxy /api/* localhost:7022
file_server {
root /srv
}
}
Here is my plan:
When request URL is
aruiplex.com, Caddy can show me theindex.htmlin/srvdirectory.When request URL is
aruiplex.com/files, Caddy can show me the file list in the/filesdirectory in docker container.When request URL is
aruiplex.com/api, Caddy can pass this request tolocalhost:7022.
But when I request aruiplex.com/files file server is not working, it gives me a 404. And I have check this directory in docker container, there have some files.
Here is my file tree at / in docker container:
/
/home
/etc
/...
/files
/aaa.txt
/bbb.txt
/srv
/index.html
Version: Caddy 2.4.6 in Docker.
P.S.: If you see the post on the caddy.community, it also me.
Solution 1:[1]
Deploying and serving different contents of the project
Serve the website, API, and content of the folder with the handle and handle_path directives to serve
Here is the sample project I created for the same usercase
??? Caddyfile
??? app
? ??? index.html
??? docker-compose.yml
??? files
? ??? bye.txt
? ??? hello.txt
??? logs
??? access.log
Caddyfile, replace 8080 with your domain example.com
:8080 {
handle /api* {
reverse_proxy localhost:7022
}
handle_path /files* {
root * /files
file_server browse
}
handle {
root * /srv
file_server browse
}
}
:7022 {
respond "Hey! I AM API"
}
docker-compose.yml
version: "3"
services:
caddy:
restart: always
image: caddy:2.4.6
container_name: caddy
ports:
- 8080:8080 # Configure Caddyfile with port opened
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
- caddy_config:/config
- ./app:/srv
- ./files:/files
- ./logs:/var/log
volumes:
caddy_data:
caddy_config:
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Jinna Balu |
