Estou encontrando um problema de reescrita de caminho ao usar o Docker Compose com proxy reverso Nginx para implantar um blog Hugo. As solicitações para IP/Hugo-Blog/X/Y/Z
estão sendo redirecionadas para IP/X/Y/Z
em vez de manter o /Hugo-Blog/
prefixo, resultando em erros 404.
No entanto, quando tento acessar IP/Hugo-Blog/X/Y/Z/
diretamente (com uma barra final), funciona corretamente.
A mesma estrutura Hugo funciona corretamente no GitHub Pages em https://ri-nai.github.io/Hugo-Blog/
.
Detalhes da configuração:
- Infraestrutura: Tencent Cloud Server (plataforma de nuvem chinesa)
- Pilha: Docker Compose + proxy reverso Nginx + site estático Hugo
Arquivos de configuração:
docker-compose.yaml
:
version: '3'
services:
homepage: # Homepage Site, works fine
...
blog:
build: ./Hugo-Blog
container_name: blog
expose:
- "80"
restart: always
reverse-proxy:
image: nginx:stable-alpine
container_name: reverse-proxy
volumes:
- ./nginx-proxy/default.conf:/etc/nginx/conf.d/default.conf:ro
ports:
- "80:80"
depends_on:
- homepage
- blog
restart: always
Hugo-Blog/Dockerfile
:
FROM hugomods/hugo:exts-0.128.0 AS builder
COPY . .
RUN hugo --minify --baseURL "https://ri-nai.github.io/Hugo-Blog/"
FROM nginx:stable-alpine
COPY --from=builder /src/public /usr/share/nginx/html
nginx-proxy/default.conf
:
server {
listen 80;
server_name IP;
location /Hugo-Blog/ {
proxy_pass http://blog:80/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location / {
proxy_pass http://homepage:80/;
# ... same headers
}
}
Tentativa de solução de problemas:
A configuração confirmada do Hugo funciona corretamente nas páginas do GitHub
Os contêineres Docker verificados estão em execução e acessíveis internamente
Tenta e espera
Solicitação para
IP/Hugo-Blog/about
- 404 ligado
IP/Hugo-Blog/about
- Seguido por 404 em
IP/about
- 404 ligado
Esperado: comportamento correspondente ao padrão de redirecionamento 301 → 200 das páginas do GitHub, mantendo
/Hugo-Blog/
o prefixo