Last active
July 5, 2022 04:24
-
-
Save ayunami2000/11ca8b35420dbed7a8d03d5555ab430f to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# ALSO ADD YOUR SERVER'S PUBLIC IP WHERE IT SAYS "PUBLIC_IP_HERE" (remove the "#" too) TO PREVENT LOOPBACK!! | |
# by default, denies all ipv6 connections, because I am lazy | |
me.example.com { | |
handle /proxy/* { | |
@self remote_ip 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 ::/0 # PUBLIC_IP_HERE | |
respond @self "Not today..." { | |
close | |
} | |
@valid path_regexp proxy ^/proxy/(https?|wss?)[:;]/+([a-zA-Z0-9.-]+)(?:[:;](\d{1,5}))?(.*)$ | |
handle @valid { | |
rewrite * {re.proxy.4} | |
@hasport expression {re.proxy.3} != "" | |
@secure expression {re.proxy.1} == "wss" || {re.proxy.1} == "https" | |
handle @hasport { | |
vars resuri {re.proxy.2}:{re.proxy.3} | |
reverse_proxy @secure {vars.resuri} { | |
header_up -X-Forwarded-For | |
header_up -X-Forwarded-Proto | |
header_up -X-Forwarded-Host | |
header_up Host {upstream_hostport} | |
transport http { | |
tls | |
tls_insecure_skip_verify | |
} | |
} | |
reverse_proxy {vars.resuri} { | |
header_up -X-Forwarded-For | |
header_up -X-Forwarded-Proto | |
header_up -X-Forwarded-Host | |
header_up Host {upstream_hostport} | |
} | |
} | |
handle @secure { | |
vars resuri {re.proxy.2}:443 | |
reverse_proxy {vars.resuri} { | |
header_up -X-Forwarded-For | |
header_up -X-Forwarded-Proto | |
header_up -X-Forwarded-Host | |
header_up Host {upstream_hostport} | |
transport http { | |
tls | |
tls_insecure_skip_verify | |
} | |
} | |
} | |
vars resuri {re.proxy.2}:80 | |
reverse_proxy {vars.resuri} { | |
header_up -X-Forwarded-For | |
header_up -X-Forwarded-Proto | |
header_up -X-Forwarded-Host | |
header_up Host {upstream_hostport} | |
} | |
} | |
respond "Invalid request." | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment