Files
pixel-streaming-session-ser…/generate_nginx_config.py
T

55 lines
1.9 KiB
Python

# generate nginx config
import sys
import config
from pathlib import Path
# config
session_server_domain = config.session_server_domain
session_server_ip = config.session_server_ip
session_server_postfix = config.session_server_postfix
session_server_port = config.session_server_port
session_begin_port = config.session_begin_port
session_limit = config.session_limit
nginx_dir_name = 'nginx'
# redirect stdout to file
stdout_default = sys.stdout
Path(nginx_dir_name).mkdir(parents=True, exist_ok=True)
output_file_name = nginx_dir_name+ '/' + 'session-server-' + session_server_postfix + '.conf'
output_file = open(output_file_name, 'w')
sys.stdout = output_file
# generate config
print('server {')
print('\t#session server domain')
print('\tserver_name ' + str(session_server_domain) + ';')
print('\n\t#session server location')
print('\tlocation /' + session_server_postfix + '/ {')
print('\t\tproxy_pass http://' + session_server_ip + ':' + str(session_server_port) + '/;')
print('\t\tproxy_http_version 1.1;')
print('\t\tproxy_set_header Upgrade $http_upgrade;')
print("\t\tproxy_set_header Connection 'upgrade';")
print('\t\tproxy_set_header Host $host;')
print('\t\tproxy_cache_bypass $http_upgrade;')
print('\t}\n')
print('\t#sessions location')
for i in range(0, session_limit):
print('\tlocation /' + str(session_server_postfix) + '/' + str(session_begin_port + i) + '/ {')
print('\t\tproxy_pass http://' + str(session_server_ip) + ':' + str(session_begin_port + i) + '/;')
print('\t\tproxy_set_header Upgrade $http_upgrade;')
print("\t\tproxy_set_header Connection 'upgrade';")
print("\t\tproxy_connect_timeout 86400s;")
print("\t\tproxy_send_timeout 86400s;")
print("\t\tproxy_read_timeout 86400s;")
print('\t}')
print('}')
# undo redirect to file
sys.stdout = stdout_default
output_file.close()
print('nginx config file saved to: ' + output_file_name)