From 9475ee4199293c5d58354105b64a14926beaf88c Mon Sep 17 00:00:00 2001 From: Markus Scheidgen <markus.scheidgen@gmail.com> Date: Fri, 2 Aug 2019 10:58:13 +0200 Subject: [PATCH] Added a simple command to generate proxy pass configs for reverse proxies. --- nomad/cli/admin/admin.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/nomad/cli/admin/admin.py b/nomad/cli/admin/admin.py index b11f46c971..f18469e617 100644 --- a/nomad/cli/admin/admin.py +++ b/nomad/cli/admin/admin.py @@ -52,3 +52,43 @@ def index(dry): print('') print('indexing completed, %d failed entries' % failed) + + +@admin.group(help='Helper scripts for nomad operations') +def ops(): + pass + + +@ops.command(help=( + 'Generate a proxy pass config for apache2 reverse proxy servers. This can be used to ' + 'generate partial apache2 configs, e.g. via ... > /etc/https/conf.d/nomad.conf.')) +@click.option('--nginx', is_flag=True, help='Provide config for apache2, default is apache.') +@click.option('--prefix', type=str, default='uploads', help='The path prefix under which everything is proxy passed.') +@click.option('--host', type=str, default='130.183.207.104', help='The host to proxy to.') +@click.option('--port', type=str, default='30001', help='The port to proxy to.') +def proxy_pass(nginx, prefix, host, port): + if not nginx: + print('''\ +ProxyPass "/{0}" "http://{1}:{2}/{0}" +ProxyPassReverse "/{0}" "http://{1}:{2}/{0}" +<Proxy http://{1}:{2}/{0}> + ProxyPreserveHost On + Order deny,allow + Allow from all +</Proxy>'''.format(prefix, host, port)) + else: + print('''\ + location /{0} {{ + client_max_body_size 35g; + proxy_pass http://{1}:{2}; + proxy_set_header Host $host; + proxy_pass_request_headers on; + proxy_buffering off; + proxy_request_buffering off; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_connect_timeout 600; + proxy_send_timeout 3600; + proxy_read_timeout 600; + send_timeout 3600; + }}'''.format(prefix, host, port)) -- GitLab