2022-12-03 19:06:50 +00:00
|
|
|
# aproxy
|
|
|
|
|
2022-12-03 19:08:24 +00:00
|
|
|
Activity Pub Reverse Proxy Framework
|
|
|
|
|
|
|
|
this is a collection of OpenResty scripts that provide different functionality
|
|
|
|
on top of ActivityPub implementations.
|
|
|
|
|
2022-12-07 05:00:48 +00:00
|
|
|
## Installation
|
2022-12-03 19:08:24 +00:00
|
|
|
|
2022-12-07 05:00:48 +00:00
|
|
|
### the fuck is openresty
|
|
|
|
|
|
|
|
Get OpenResty: http://openresty.org/en/
|
|
|
|
|
|
|
|
For those not in the know, OpenResty is a "soft fork" of the god NGINX.
|
|
|
|
It adds various modules but the most important of them is Lua scripting
|
|
|
|
(provided by another god, LuaJIT)
|
|
|
|
|
|
|
|
It is an effective replacement to your NGINX installation, but you can have
|
|
|
|
them coexisting (say, NGINX on port 80, OpenResty being reverse proxied by
|
2022-12-07 05:03:23 +00:00
|
|
|
NGINX on port 8069, though I wouldn't recommend it in production environments).
|
2022-12-07 05:00:48 +00:00
|
|
|
|
|
|
|
### actually installing aproxy
|
|
|
|
|
2022-12-07 05:03:23 +00:00
|
|
|
```sh
|
2022-12-07 05:00:48 +00:00
|
|
|
mkdir /opt
|
|
|
|
git clone https://gitdab.com/luna/aproxy
|
|
|
|
|
|
|
|
cd aproxy
|
|
|
|
mkdir /etc/aproxy
|
|
|
|
cp ./conf.lua /etc/aproxy/conf.lua
|
|
|
|
$EDITOR /etc/aproxy/conf.lua
|
|
|
|
```
|
|
|
|
|
|
|
|
#### now to configuring openresty to use aproxy
|
|
|
|
|
|
|
|
Say, you already have your reverse proxy block to your instance as such:
|
|
|
|
```nginx
|
|
|
|
http {
|
|
|
|
server {
|
|
|
|
server_name example.com;
|
|
|
|
location / {
|
|
|
|
proxy_http_version 1.1;
|
|
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
|
|
proxy_set_header Connection "upgrade";
|
|
|
|
proxy_set_header Host $http_host;
|
|
|
|
proxy_pass http://localhost:4000;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
You need to do the following:
|
|
|
|
- Configure OpenResty package path so that it can call aproxy.
|
|
|
|
- Insert aproxy as a callback on `location / {` block
|
|
|
|
|
|
|
|
It'll look something like this:
|
|
|
|
|
|
|
|
```nginx
|
|
|
|
http {
|
|
|
|
lua_package_path '/opt/?.lua;/opt/aproxy/?.lua;;';
|
|
|
|
|
|
|
|
server {
|
|
|
|
server_name example.com;
|
|
|
|
location / {
|
|
|
|
# set this to 'on' after you have tested that it actually works.
|
|
|
|
# once you do that, performance will be increased
|
|
|
|
# while the friction to quickly debug aproxy will also be increased
|
|
|
|
lua_code_cache off;
|
|
|
|
access_by_lua_block {
|
|
|
|
require("aproxy.main")()
|
|
|
|
}
|
|
|
|
|
|
|
|
proxy_http_version 1.1;
|
|
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
|
|
proxy_set_header Connection "upgrade";
|
|
|
|
proxy_set_header Host $http_host;
|
|
|
|
proxy_pass http://localhost:4000;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
2022-12-03 19:08:24 +00:00
|
|
|
|
2022-12-07 05:02:43 +00:00
|
|
|
## Running the test suite
|
2022-12-06 18:53:20 +00:00
|
|
|
|
2022-12-07 05:03:23 +00:00
|
|
|
requires luarocks, luajit, and nothing else.
|
2022-12-06 21:25:26 +00:00
|
|
|
|
2022-12-06 21:24:25 +00:00
|
|
|
```sh
|
2022-12-06 21:25:26 +00:00
|
|
|
make testdeps
|
2022-12-06 18:53:20 +00:00
|
|
|
eval (luarocks-5.1 path --bin)
|
2022-12-06 21:25:26 +00:00
|
|
|
make test
|
2022-12-06 18:53:20 +00:00
|
|
|
```
|