[~] Refactor
This commit is contained in:
parent
ede4cc6edf
commit
9f44796795
@ -27,7 +27,8 @@ def forward(
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
sections = []
|
sections = dict()
|
||||||
|
|
||||||
for entry in forward_nginx:
|
for entry in forward_nginx:
|
||||||
location = None
|
location = None
|
||||||
|
|
||||||
@ -36,6 +37,14 @@ def forward(
|
|||||||
else:
|
else:
|
||||||
location = '/'
|
location = '/'
|
||||||
|
|
||||||
|
if 'server_name' in entry:
|
||||||
|
server_name = entry['server_name']
|
||||||
|
else:
|
||||||
|
server_name = 'default_server'
|
||||||
|
|
||||||
|
if not server_name in sections:
|
||||||
|
sections[server_name] = []
|
||||||
|
|
||||||
if 'target_endpoint' in entry:
|
if 'target_endpoint' in entry:
|
||||||
section_body = r'''
|
section_body = r'''
|
||||||
proxy_set_header Host $http_host;
|
proxy_set_header Host $http_host;
|
||||||
@ -58,7 +67,7 @@ def forward(
|
|||||||
else:
|
else:
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
sections.append(r'''
|
sections[server_name].append(r'''
|
||||||
location ^~ {location} {
|
location ^~ {location} {
|
||||||
{section_body}
|
{section_body}
|
||||||
}
|
}
|
||||||
@ -67,6 +76,44 @@ def forward(
|
|||||||
).replace(
|
).replace(
|
||||||
'{location}', location,
|
'{location}', location,
|
||||||
))
|
))
|
||||||
|
|
||||||
|
servers = []
|
||||||
|
|
||||||
|
for server_name, current_sections in sections.items():
|
||||||
|
servers.append(
|
||||||
|
r'''
|
||||||
|
server {
|
||||||
|
set $t1 $remote_addr;
|
||||||
|
if ($http_x_forwarded_for)
|
||||||
|
{
|
||||||
|
set $t1 $http_x_forwarded_for;
|
||||||
|
}
|
||||||
|
|
||||||
|
server_name {server_name};
|
||||||
|
listen 80 {default_server};
|
||||||
|
client_max_body_size 50M;
|
||||||
|
|
||||||
|
{sections_config}
|
||||||
|
}
|
||||||
|
'''.replace(
|
||||||
|
'{sections_config}', '\n'.join(current_sections)
|
||||||
|
).replace(
|
||||||
|
'{server_name}',
|
||||||
|
(
|
||||||
|
'_'
|
||||||
|
if server_name == 'default_server'
|
||||||
|
else server_name
|
||||||
|
),
|
||||||
|
).replace(
|
||||||
|
'{default_server}',
|
||||||
|
(
|
||||||
|
''
|
||||||
|
if not server_name == 'default_server'
|
||||||
|
else server_name
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
f.write(r'''
|
f.write(r'''
|
||||||
events {
|
events {
|
||||||
multi_accept on;
|
multi_accept on;
|
||||||
@ -83,19 +130,7 @@ def forward(
|
|||||||
access_log /dev/null combined;
|
access_log /dev/null combined;
|
||||||
access_log /dev/stderr main;
|
access_log /dev/stderr main;
|
||||||
|
|
||||||
server {
|
{servers_config}
|
||||||
set $t1 $remote_addr;
|
|
||||||
if ($http_x_forwarded_for)
|
|
||||||
{
|
|
||||||
set $t1 $http_x_forwarded_for;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
listen 80;
|
|
||||||
client_max_body_size 50M;
|
|
||||||
|
|
||||||
{sections_config}
|
|
||||||
}
|
|
||||||
|
|
||||||
map $http_upgrade $connection_upgrade {
|
map $http_upgrade $connection_upgrade {
|
||||||
default upgrade;
|
default upgrade;
|
||||||
@ -103,7 +138,7 @@ def forward(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
'''.replace(
|
'''.replace(
|
||||||
'{sections_config}', '\n'.join(sections)
|
'{servers_config}', '\n'.join(servers)
|
||||||
))
|
))
|
||||||
|
|
||||||
def ssl(input_json, output_conf):
|
def ssl(input_json, output_conf):
|
||||||
@ -149,6 +184,29 @@ server {
|
|||||||
for server in ssl_nginx['servers']:
|
for server in ssl_nginx['servers']:
|
||||||
servers.append(
|
servers.append(
|
||||||
r'''
|
r'''
|
||||||
|
|
||||||
|
|
||||||
|
server {
|
||||||
|
set $t1 $remote_addr;
|
||||||
|
if ($http_x_forwarded_for)
|
||||||
|
{
|
||||||
|
set $t1 $http_x_forwarded_for;
|
||||||
|
}
|
||||||
|
|
||||||
|
listen 80;
|
||||||
|
server_name {server_names};
|
||||||
|
client_max_body_size {client_max_body_size};
|
||||||
|
|
||||||
|
location ~ ^/.well-known/acme-challenge/ {
|
||||||
|
alias /var/www/;
|
||||||
|
try_files $uri =404;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ {
|
||||||
|
return 444;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
server {
|
server {
|
||||||
set $t1 $remote_addr;
|
set $t1 $remote_addr;
|
||||||
if ($http_x_forwarded_for)
|
if ($http_x_forwarded_for)
|
||||||
|
@ -5,8 +5,8 @@ services:
|
|||||||
context: .
|
context: .
|
||||||
dockerfile: ./docker/app/Dockerfile
|
dockerfile: ./docker/app/Dockerfile
|
||||||
volumes:
|
volumes:
|
||||||
- ./d1/nginx_config.py:/app/d1/nginx_config.py:ro
|
- ./d1/:/app/d1/:ro
|
||||||
- ./tmp/cache/forward.nginx.json:/app/tmp/cache/forward.nginx.json:ro
|
- ./tmp/cache/:/app/tmp/cache/:ro
|
||||||
restart: always
|
restart: always
|
||||||
ssl-app:
|
ssl-app:
|
||||||
build:
|
build:
|
||||||
|
Loading…
Reference in New Issue
Block a user