nginx use expected dirs and allow websockets in proxy pass
This commit is contained in:
parent
bdb9fa064d
commit
187b0440c8
6 changed files with 36 additions and 10 deletions
|
@ -69,6 +69,9 @@ defaults = {
|
|||
},
|
||||
},
|
||||
},
|
||||
'nginx': {
|
||||
'has_websockets': True,
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
|
@ -144,6 +147,7 @@ def dns(metadata):
|
|||
def nginx(metadata):
|
||||
return {
|
||||
'nginx': {
|
||||
'has_websockets': True,
|
||||
'vhosts': {
|
||||
metadata.get('grafana/hostname'): {
|
||||
'content': 'grafana/vhost.conf',
|
||||
|
|
|
@ -31,5 +31,13 @@ http {
|
|||
}
|
||||
|
||||
% endif
|
||||
include /etc/nginx/sites/*;
|
||||
|
||||
% if has_websockets:
|
||||
map $http_upgrade $connection_upgrade {
|
||||
default upgrade;
|
||||
'' close;
|
||||
}
|
||||
% endif
|
||||
|
||||
include /etc/nginx/sites-enabled/*;
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ directories = {
|
|||
'svc_systemd:nginx:restart',
|
||||
},
|
||||
},
|
||||
'/etc/nginx/sites': {
|
||||
'/etc/nginx/sites-available': {
|
||||
'purge': True,
|
||||
'triggers': {
|
||||
'svc_systemd:nginx:restart',
|
||||
|
@ -25,6 +25,13 @@ directories = {
|
|||
'purge': True,
|
||||
'owner': 'www-data',
|
||||
},
|
||||
|
||||
# temp
|
||||
'/var/www/certbot': {
|
||||
'owner': 'www-data',
|
||||
'group': 'www-data',
|
||||
'mode': '0755',
|
||||
}
|
||||
}
|
||||
|
||||
files = {
|
||||
|
@ -33,6 +40,7 @@ files = {
|
|||
'context': {
|
||||
'modules': node.metadata.get('nginx/modules'),
|
||||
'worker_processes': node.metadata.get('vm/cores'),
|
||||
'has_websockets': node.metadata.get('nginx/has_websockets'),
|
||||
},
|
||||
'triggers': {
|
||||
'svc_systemd:nginx:restart',
|
||||
|
@ -75,6 +83,12 @@ files = {
|
|||
},
|
||||
}
|
||||
|
||||
symlinks = {
|
||||
'/etc/nginx/sites-enabled': {
|
||||
'target': '/etc/nginx/sites-available',
|
||||
},
|
||||
}
|
||||
|
||||
actions = {
|
||||
'nginx-generate-dhparam': {
|
||||
'command': 'openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096',
|
||||
|
@ -93,7 +107,7 @@ svc_systemd = {
|
|||
|
||||
|
||||
for name, config in node.metadata.get('nginx/vhosts').items():
|
||||
files[f'/etc/nginx/sites/{name}'] = {
|
||||
files[f'/etc/nginx/sites-available/{name}'] = {
|
||||
'content': Template(filename=join(repo.path, 'data', config['content'])).render(
|
||||
server_name=name,
|
||||
**config.get('context', {}),
|
||||
|
@ -109,6 +123,6 @@ for name, config in node.metadata.get('nginx/vhosts').items():
|
|||
}
|
||||
|
||||
if name in node.metadata.get('letsencrypt/domains'):
|
||||
files[f'/etc/nginx/sites/{name}']['needs'].append(
|
||||
files[f'/etc/nginx/sites-available/{name}']['needs'].append(
|
||||
f'action:letsencrypt_ensure-some-certificate_{name}',
|
||||
)
|
||||
|
|
|
@ -18,6 +18,7 @@ defaults = {
|
|||
'nginx': {
|
||||
'vhosts': {},
|
||||
'modules': set(),
|
||||
'has_websockets': False,
|
||||
},
|
||||
'systemd': {
|
||||
'units': {
|
||||
|
|
|
@ -1,8 +1,3 @@
|
|||
map $http_upgrade $connection_upgrade {
|
||||
default upgrade;
|
||||
'' close;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 443 ssl http2;
|
||||
listen [::]:443 ssl http2;
|
||||
|
|
|
@ -8,6 +8,10 @@ server {
|
|||
|
||||
location / {
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
% if websockets:
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection $connection_upgrade;
|
||||
% endif
|
||||
proxy_pass ${target};
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue