From 65c93fa871dbc67ccf9dc6e9b5fcbe99cb89947f Mon Sep 17 00:00:00 2001 From: Eugene Prodan Date: Sun, 6 Jun 2021 20:26:13 +0300 Subject: [PATCH] feat: initial commit --- docker-compose.yml | 17 +++++++++++++++++ haproxy.cfg | 19 +++++++++++++++++++ scripts/guard.lua | 10 ++++++++++ scripts/register.lua | 5 +++++ 4 files changed, 51 insertions(+) create mode 100644 docker-compose.yml create mode 100644 haproxy.cfg create mode 100644 scripts/guard.lua create mode 100644 scripts/register.lua diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..4f7ebd2 --- /dev/null +++ b/docker-compose.yml @@ -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 \ No newline at end of file diff --git a/haproxy.cfg b/haproxy.cfg new file mode 100644 index 0000000..186cc38 --- /dev/null +++ b/haproxy.cfg @@ -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 diff --git a/scripts/guard.lua b/scripts/guard.lua new file mode 100644 index 0000000..f875da6 --- /dev/null +++ b/scripts/guard.lua @@ -0,0 +1,10 @@ +guard = {} + +function guard.hello_world(applet) + applet:set_status(200) + local response = string.format([[Hello World!]], message); + applet:add_header("content-type", "text/html"); + applet:add_header("content-length", string.len(response)) + applet:start_response() + applet:send(response) +end \ No newline at end of file diff --git a/scripts/register.lua b/scripts/register.lua new file mode 100644 index 0000000..4cb2263 --- /dev/null +++ b/scripts/register.lua @@ -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); \ No newline at end of file