X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/70e5c7a3c6a5860d702d5e5c219dc0f3a3696d35..7c3e13d4876a8e37feffee3cdaebc44b20b7b61b:/tools/arvbox/lib/arvbox/docker/service/nginx/run diff --git a/tools/arvbox/lib/arvbox/docker/service/nginx/run b/tools/arvbox/lib/arvbox/docker/service/nginx/run deleted file mode 120000 index a388c8b67b..0000000000 --- a/tools/arvbox/lib/arvbox/docker/service/nginx/run +++ /dev/null @@ -1 +0,0 @@ -/usr/local/lib/arvbox/runsu.sh \ No newline at end of file diff --git a/tools/arvbox/lib/arvbox/docker/service/nginx/run b/tools/arvbox/lib/arvbox/docker/service/nginx/run new file mode 100755 index 0000000000..0d60e74128 --- /dev/null +++ b/tools/arvbox/lib/arvbox/docker/service/nginx/run @@ -0,0 +1,173 @@ +#!/bin/bash +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 + +exec 2>&1 +set -ex -o pipefail + +. /usr/local/lib/arvbox/common.sh + +openssl verify -CAfile $root_cert $server_cert + +cat </var/lib/arvados/nginx.conf +worker_processes auto; +pid /var/lib/arvados/nginx.pid; + +error_log stderr; +daemon off; +user arvbox; + +events { + worker_connections 64; +} + +http { + access_log off; + include /etc/nginx/mime.types; + default_type application/octet-stream; + client_max_body_size 128M; + + server { + listen ${services[doc]} default_server; + listen [::]:${services[doc]} default_server; + root /usr/src/arvados/doc/.site; + index index.html; + server_name _; + } + + server { + listen 80 default_server; + server_name _; + return 301 https://\$host\$request_uri; + } + + upstream controller { + server localhost:${services[controller]}; + } + server { + listen *:${services[controller-ssl]} ssl default_server; + server_name controller; + ssl_certificate "${server_cert}"; + ssl_certificate_key "${server_cert_key}"; + location / { + proxy_pass http://controller; + proxy_set_header Host \$http_host; + proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto https; + proxy_redirect off; + } + } + +upstream arvados-ws { + server localhost:${services[websockets]}; +} +server { + listen *:${services[websockets-ssl]} ssl default_server; + server_name websockets; + + proxy_connect_timeout 90s; + proxy_read_timeout 300s; + + ssl on; + ssl_certificate "${server_cert}"; + ssl_certificate_key "${server_cert_key}"; + + location / { + proxy_pass http://arvados-ws; + proxy_set_header Upgrade \$http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_set_header Host \$http_host; + proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; + } +} + + upstream workbench2 { + server localhost:${services[workbench2]}; + } + server { + listen *:${services[workbench2-ssl]} ssl default_server; + server_name workbench2; + ssl_certificate "${server_cert}"; + ssl_certificate_key "${server_cert_key}"; + location / { + proxy_pass http://workbench2; + proxy_set_header Host \$http_host; + proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto https; + proxy_redirect off; + } + location /sockjs-node { + proxy_pass http://workbench2; + proxy_set_header Upgrade \$http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_set_header Host \$http_host; + proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; + } + } + + upstream keep-web { + server localhost:${services[keep-web]}; + } + server { + listen *:${services[keep-web-ssl]} ssl default_server; + server_name keep-web; + ssl_certificate "${server_cert}"; + ssl_certificate_key "${server_cert_key}"; + client_max_body_size 0; + location / { + proxy_pass http://keep-web; + proxy_set_header Host \$http_host; + proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto https; + proxy_redirect off; + } + } + + + upstream keepproxy { + server localhost:${services[keepproxy]}; + } + server { + listen *:${services[keepproxy-ssl]} ssl default_server; + server_name keepproxy; + ssl_certificate "${server_cert}"; + ssl_certificate_key "${server_cert_key}"; + client_max_body_size 128M; + location / { + proxy_pass http://keepproxy; + proxy_set_header Host \$http_host; + proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto https; + proxy_redirect off; + } + } + + upstream arvados-git-httpd { + server localhost:${services[arv-git-httpd]}; + } + server { + listen *:${services[arv-git-httpd-ssl]} ssl default_server; + server_name arvados-git-httpd; + proxy_connect_timeout 90s; + proxy_read_timeout 300s; + + ssl on; + ssl_certificate "${server_cert}"; + ssl_certificate_key "${server_cert_key}"; + client_max_body_size 50m; + + location / { + proxy_pass http://arvados-git-httpd; + proxy_set_header Host \$http_host; + proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto https; + proxy_redirect off; + } + } + +} + +EOF + +exec nginx -c /var/lib/arvados/nginx.conf