Skip to content

Commit c6a1c09

Browse files
committed
update
1 parent 3bec49a commit c6a1c09

File tree

11 files changed

+935
-363
lines changed

11 files changed

+935
-363
lines changed

.assets/icon.png

-8.96 KB
Loading

.traefik.yml

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1-
displayName: Demo Plugin
1+
displayName: Queue Manager
22
type: middleware
3+
import: github.com/hhftechnology/traefik-queue-manager
4+
summary: |
5+
This plugin implements a queue management system for Traefik services, limiting the number of concurrent users and placing excess traffic in a fair, first-come-first-served queue with automatic refresh.
36
iconPath: .assets/icon.png
4-
5-
import: github.com/traefik/plugindemo
6-
7-
summary: '[Demo] Add Request Header'
8-
97
testData:
10-
Headers:
11-
X-Demo: test
12-
X-URL: '{{URL}}'
8+
enabled: true
9+
maxEntries: 100
10+
sessionTime: 1m
11+
queuePageFile: queue-page.html
12+
useCookies: true
13+
cookieName: queue-manager-id

demo.go

Lines changed: 0 additions & 66 deletions
This file was deleted.

demo_test.go

Lines changed: 0 additions & 49 deletions
This file was deleted.

docker-compose.yml

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# docker-compose.yml
2+
version: "3.6"
3+
4+
services:
5+
traefik:
6+
image: traefik:v3.3.4
7+
container_name: traefik
8+
command:
9+
- --log.level=INFO
10+
- --api
11+
- --api.dashboard
12+
- --api.insecure=true
13+
- --providers.docker=true
14+
- --entrypoints.web.address=:80
15+
- --experimental.localPlugins.queuemanager.moduleName=github.com/hhftechnology/traefik-queue-manager
16+
ports:
17+
- "80:80"
18+
- "8080:8080"
19+
networks:
20+
- traefik-network
21+
volumes:
22+
- /var/run/docker.sock:/var/run/docker.sock
23+
- ./:/plugins-local/src/github.com/hhftechnology/traefik-queue-manager
24+
labels:
25+
- traefik.http.middlewares.queuemanager.plugin.queuemanager.enabled=true
26+
- traefik.http.middlewares.queuemanager.plugin.queuemanager.queuePageFile=/plugins-local/src/github.com/hhftechnology/traefik-queue-manager/queue-page.html
27+
- traefik.http.middlewares.queuemanager.plugin.queuemanager.maxEntries=5
28+
- traefik.http.middlewares.queuemanager.plugin.queuemanager.sessionTime=1m
29+
- traefik.http.middlewares.queuemanager.plugin.queuemanager.purgeTime=5m
30+
- traefik.http.middlewares.queuemanager.plugin.queuemanager.useCookies=true
31+
- traefik.http.middlewares.queuemanager.plugin.queuemanager.cookieName=queue-manager-id
32+
- traefik.http.middlewares.queuemanager.plugin.queuemanager.refreshInterval=30
33+
- traefik.http.middlewares.queuemanager.plugin.queuemanager.debug=true
34+
35+
whoami:
36+
image: traefik/whoami
37+
container_name: whoami-service
38+
depends_on:
39+
- traefik
40+
networks:
41+
- traefik-network
42+
deploy:
43+
replicas: 3
44+
labels:
45+
- traefik.enable=true
46+
- traefik.http.routers.whoami.rule=Host(`whoami.local`)
47+
- traefik.http.routers.whoami.entrypoints=web
48+
- traefik.http.routers.whoami.service=whoami-service
49+
- traefik.http.services.whoami-service.loadbalancer.server.port=80
50+
- traefik.http.routers.whoami.middlewares=queuemanager
51+
52+
networks:
53+
traefik-network:
54+
driver: bridge

go.mod

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1-
module github.com/traefik/plugindemo
1+
module github.com/hhftechnology/traefik-queue-manager
22

33
go 1.19
4+
5+
require github.com/patrickmn/go-cache v2.1.0+incompatible

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc=
2+
github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ=

0 commit comments

Comments
 (0)