Skip to content

在子路径上提供服务

通过设置 APP_URL 环境变量并使用反向代理将请求转发到子路径,Beszel 可以在子路径上提供服务。

配置示例

bash
APP_URL=https://beszel.example.com/base-path

Caddy

text
beszel.example.com {
	request_body {
		max_size 10MB
	}
	handle_path /base-path* {
		reverse_proxy 127.0.0.1:8090 {
			transport http {
				read_timeout 360s
			}
		}
	}
	respond 404
}

Nginx

nginx
server {
	listen 80;
	server_name beszel.example.com;
	client_max_body_size 10M;

	location /base-path {
		# 查看 http://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive
		proxy_set_header Connection '';
		proxy_http_version 1.1;
		proxy_read_timeout 360s;

		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;

		rewrite /base-path/(.*) /$1  break;

		proxy_pass http://127.0.0.1:8090;
	}
}

Traefik

yaml
beszel:
  image: henrygd/beszel:latest
  container_name: beszel
  restart: unless-stopped
  volumes:
    - ./beszel_data:/beszel_data
    - ./beszel_socket:/beszel_socket
  networks:
    - traefik-network
  environment:
    - APP_URL=https://${HOSTNAME}/${SUB_PATH}
  labels:
    - "traefik.enable=true"
    - "traefik.http.routers.beszel.entrypoints=web,websecure"
    - "traefik.http.routers.beszel.rule=Host(`${HOSTNAME}`) && PathPrefix(`/${SUB_PATH}`)"
    - "traefik.http.middlewares.strip-beszel.stripprefix.prefixes=/beszel"
    - "traefik.http.routers.beszel.middlewares=strip-beszel@docker"
    - "traefik.http.routers.beszel.tls=true"
    - "traefik.http.routers.beszel.tls.certresolver=your-cert-resolver"
    - "traefik.http.routers.beszel.tls.domains[0].main=${HOSTNAME}"

基于 MIT 许可发布