mirror of
https://gitgud.io/fatchan/haproxy-protection.git
synced 2025-05-09 02:05:37 +00:00
feat: initial commit
This commit is contained in:
17
docker-compose.yml
Normal file
17
docker-compose.yml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
version: "3.9"
|
||||||
|
services:
|
||||||
|
haproxy:
|
||||||
|
image: "haproxy:latest"
|
||||||
|
ports:
|
||||||
|
- 80:80
|
||||||
|
volumes:
|
||||||
|
- ./haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg
|
||||||
|
- ./scripts/:/usr/local/etc/haproxy/scripts/
|
||||||
|
|
||||||
|
nginx:
|
||||||
|
image: "nginx:latest"
|
||||||
|
|
||||||
|
redis:
|
||||||
|
image: "redis:latest"
|
||||||
|
ports:
|
||||||
|
- 6379:6379
|
19
haproxy.cfg
Normal file
19
haproxy.cfg
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
global
|
||||||
|
daemon
|
||||||
|
maxconn 256
|
||||||
|
log stdout format raw local0 debug
|
||||||
|
lua-load /usr/local/etc/haproxy/scripts/register.lua
|
||||||
|
|
||||||
|
defaults
|
||||||
|
mode http
|
||||||
|
timeout connect 5000ms
|
||||||
|
timeout client 50000ms
|
||||||
|
timeout server 50000ms
|
||||||
|
|
||||||
|
frontend http-in
|
||||||
|
bind *:80
|
||||||
|
default_backend servers
|
||||||
|
http-request use-service lua.hello-world if { path /hello_world }
|
||||||
|
|
||||||
|
backend servers
|
||||||
|
server server1 nginx:80 maxconn 32
|
10
scripts/guard.lua
Normal file
10
scripts/guard.lua
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
guard = {}
|
||||||
|
|
||||||
|
function guard.hello_world(applet)
|
||||||
|
applet:set_status(200)
|
||||||
|
local response = string.format([[<html><body>Hello World!</body></html>]], message);
|
||||||
|
applet:add_header("content-type", "text/html");
|
||||||
|
applet:add_header("content-length", string.len(response))
|
||||||
|
applet:start_response()
|
||||||
|
applet:send(response)
|
||||||
|
end
|
5
scripts/register.lua
Normal file
5
scripts/register.lua
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
package.path = package.path .. "./?.lua;/usr/local/etc/haproxy/scripts/?.lua"
|
||||||
|
|
||||||
|
require("guard")
|
||||||
|
|
||||||
|
core.register_service("hello-world", "http", guard.hello_world);
|
Reference in New Issue
Block a user