diff options
Diffstat (limited to 'data')
-rw-r--r-- | data/proxy/haproxy/.keep | 0 | ||||
-rw-r--r-- | data/proxy/nginx/default/html/index.html | 25 | ||||
-rw-r--r-- | data/proxy/nginx/log/.keep | 0 | ||||
-rw-r--r-- | data/proxy/nginx/nginx.conf | 37 | ||||
-rw-r--r-- | data/proxy/nginx/sites-enabled/.keep | 0 | ||||
-rw-r--r-- | data/proxy/nginx/sites.template.scalelite-cluster | 77 | ||||
-rw-r--r-- | data/proxy/nginx/sites.template.scalelite-proxy | 75 |
7 files changed, 214 insertions, 0 deletions
diff --git a/data/proxy/haproxy/.keep b/data/proxy/haproxy/.keep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/data/proxy/haproxy/.keep diff --git a/data/proxy/nginx/default/html/index.html b/data/proxy/nginx/default/html/index.html new file mode 100644 index 0000000..2ca3b95 --- /dev/null +++ b/data/proxy/nginx/default/html/index.html @@ -0,0 +1,25 @@ +<!DOCTYPE html> +<html> +<head> +<title>Welcome to nginx!</title> +<style> + body { + width: 35em; + margin: 0 auto; + font-family: Tahoma, Verdana, Arial, sans-serif; + } +</style> +</head> +<body> +<h1>Welcome to nginx!</h1> +<p>If you see this page, the nginx web server is successfully installed and +working. Further configuration is required.</p> + +<p>For online documentation and support please refer to +<a href="http://nginx.org/">nginx.org</a>.<br/> +Commercial support is available at +<a href="http://nginx.com/">nginx.com</a>.</p> + +<p><em>Thank you for using nginx.</em></p> +</body> +</html> diff --git a/data/proxy/nginx/log/.keep b/data/proxy/nginx/log/.keep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/data/proxy/nginx/log/.keep diff --git a/data/proxy/nginx/nginx.conf b/data/proxy/nginx/nginx.conf new file mode 100644 index 0000000..981c619 --- /dev/null +++ b/data/proxy/nginx/nginx.conf @@ -0,0 +1,37 @@ +user nginx; +worker_processes 1; + +error_log /var/log/nginx/error.log warn; +pid /var/run/nginx.pid; + + +events { + worker_connections 1024; +} + + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + access_log /var/log/nginx/access.log main; + + sendfile on; + #tcp_nopush on; + + keepalive_timeout 65; + + #gzip on; + + include /etc/nginx/conf.d/*.conf; + + ## + # Virtual Host Configs + ## + + include /etc/nginx/sites-enabled/*; +} diff --git a/data/proxy/nginx/sites-enabled/.keep b/data/proxy/nginx/sites-enabled/.keep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/data/proxy/nginx/sites-enabled/.keep diff --git a/data/proxy/nginx/sites.template.scalelite-cluster b/data/proxy/nginx/sites.template.scalelite-cluster new file mode 100644 index 0000000..395fabe --- /dev/null +++ b/data/proxy/nginx/sites.template.scalelite-cluster @@ -0,0 +1,77 @@ +#### For <$NGINX_HOSTNAME> + +upstream docker-scalelite-api { + server scalelite-api-1:80 max_fails=3 fail_timeout=30s; + server scalelite-api-2:80 max_fails=3 fail_timeout=30s; +} + +upstream docker-scalelite-recordings { + server scalelite-recordings-1:80 max_fails=3 fail_timeout=30s; + server scalelite-recordings-2:80 max_fails=3 fail_timeout=30s; +} + +server { + server_name $NGINX_HOSTNAME; + + listen 80; + listen [::]:80; + + location /.well-known/acme-challenge/ { + root /var/www/certbot; + } + + location / { + return 301 https://$host$request_uri; + } +} + +server { + server_name $NGINX_HOSTNAME; + + listen 443 ssl; + listen [::]:443 ssl; + + ## Configuration for Letsencrypt SSL Certificate + ssl_certificate /etc/letsencrypt/live/$NGINX_HOSTNAME/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/$NGINX_HOSTNAME/privkey.pem; + + ## Configuration for SSL Certificate from a CA other than LetsEncrypt + #ssl_certificate /etc/ssl/fullchain.pem; + #ssl_certificate_key /etc/ssl/privkey.pem; + + location /bigbluebutton/api/ { + proxy_pass http://docker-scalelite-api; + + proxy_read_timeout 60s; + proxy_redirect off; + + 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-Proto $scheme; + + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + } + + location / { + proxy_pass http://docker-scalelite-recordings; + + proxy_read_timeout 60s; + proxy_redirect off; + + 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-Proto $scheme; + + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + } +} diff --git a/data/proxy/nginx/sites.template.scalelite-proxy b/data/proxy/nginx/sites.template.scalelite-proxy new file mode 100644 index 0000000..64462f2 --- /dev/null +++ b/data/proxy/nginx/sites.template.scalelite-proxy @@ -0,0 +1,75 @@ +#### For <$NGINX_HOSTNAME> + +upstream docker-scalelite-api { + server scalelite-api:3000; +} + +upstream docker-scalelite-recordings { + server scalelite-recordings:80; +} + +server { + server_name $NGINX_HOSTNAME; + + listen 80; + listen [::]:80; + + location /.well-known/acme-challenge/ { + root /var/www/certbot; + } + + location / { + return 301 https://$host$request_uri; + } +} + +server { + server_name $NGINX_HOSTNAME; + + listen 443 ssl; + listen [::]:443 ssl; + + ## Configuration for Letsencrypt SSL Certificate + ssl_certificate /etc/letsencrypt/live/$NGINX_HOSTNAME/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/$NGINX_HOSTNAME/privkey.pem; + + ## Configuration for SSL Certificate from a CA other than LetsEncrypt + #ssl_certificate /etc/ssl/fullchain.pem; + #ssl_certificate_key /etc/ssl/privkey.pem; + + location /bigbluebutton/api/ { + proxy_pass http://docker-scalelite-api; + + proxy_read_timeout 60s; + proxy_redirect off; + + 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-Proto $scheme; + + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + } + + location / { + proxy_pass http://docker-scalelite-recordings; + + proxy_read_timeout 60s; + proxy_redirect off; + + 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-Proto $scheme; + + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + } +} |