lwzm
8/22/2019 - 3:44 PM

generate nginx conf

#!/usr/bin/env python3

import sys
from string import Template

tpl = Template("""
upstream ${name} {
    server ${name}${port};
    keepalive 64;
}

server {
    server_name  ${name}.*;
    listen       80;
    listen       443 ssl http2;

    # https://caddyserver.com/docs/proxy
    # see websocket and transparent
    proxy_http_version 1.1;
    proxy_connect_timeout 2;
    proxy_read_timeout 300;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Port $server_port;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Connection $http_connection;
    proxy_set_header Upgrade $http_upgrade;

    location / {
        proxy_pass http://${name};
    }
}
""")


def g(name, port=''):
    port = port and f":{int(port)}"
    print(tpl.safe_substitute(name=name, port=port), file=open(f"{name}.conf", "w"))


if __name__ == '__main__':
    g(*sys.argv[1:])