go-auth-reverse-proxy 是一款使用 Go 語言開發的輕量級反向代理伺服器,具備授權驗證機制。它透過 Bearer Token 驗證保護後端服務,僅允許授權使用者存取。這款工具適合用於開發、內網服務保護或作為 API Gateway 的前置防線。
- 作為私人 Ollama 部署的 API 服務調用驗證機制,go-auth-reverse-proxy 確保資源不會暴露於公共網絡中,從而保護敏感數據和應用程式。
go run main.go initgo run main.go add -name=usergo run main.go listgo run main.go run -port=80 -proxy=http://localhost:8080$Env:AuthPort = 80
$Env:ProxyPort = 8080
# create container
docker run -d `
--name "auth-proxy-${Env:AuthPort}-to-${Env:ProxyPort}" `
-p "${Env:AuthPort}:80" `
-e "PROXY=http://host.docker.internal:${Env:ProxyPort}" `
--restart unless-stopped `
alsk1369854/go-auth-reverse-proxy
# show token list
docker exec -it auth-proxy-${Env:AuthPort}-to-${Env:ProxyPort} ./app list
# track logs
docker logs -f auth-proxy-${Env:AuthPort}-to-${Env:ProxyPort}export AuthPort=80
export ProxyPort=8080
# create container
docker run -d \
--name auth-proxy-${AuthPort}-to-${ProxyPort} \
-p ${AuthPort}:80 \
-e PROXY_URL=http://host.docker.internal:${ProxyPort} \
--restart unless-stopped \
alsk1369854/go-auth-reverse-proxy
# show token list
docker exec -it auth-proxy-${AuthPort}-to-${ProxyPort} ./app list
# track logs
docker logs -f auth-proxy-${AuthPort}-to-${ProxyPort}export AuthPort=80
export ProxyPort=8080
# create container
docker run -d \
--name auth-proxy-${AuthPort}-to-${ProxyPort} \
--network=host \
-e PROXY_URL=http://localhost:${ProxyPort} \
--restart unless-stopped \
alsk1369854/go-auth-reverse-proxy
# show token list
docker exec -it auth-proxy-${AuthPort}-to-${ProxyPort} ./app list
# track logs
docker logs -f auth-proxy-${AuthPort}-to-${ProxyPort}docker run -d \
--name py-test-server \
-p 8080:80 \
--restart unless-stopped \
alsk1369854/py-test-server
# Test API
curl http://localhost:8080/go run main.go init
go run main.go list
go run main.go run -port=80 -proxy=http://localhost:8080export token=<token>
# Test1
# 未授權
curl http://localhost/
# 已授權
curl -H "Authorization: Bearer $token" http://localhost/
# Test2
# 未授權
curl http://localhost/user
# 已授權
curl -H "Authorization: Bearer $token" http://localhost/user
# Test3
# 未授權
curl http://localhost/user/1
# 已授權
curl -H "Authorization: Bearer $token" http://localhost/user/1