diff --git a/packages/web/Dockerfile b/packages/web/Dockerfile index b241197..addf2cb 100644 --- a/packages/web/Dockerfile +++ b/packages/web/Dockerfile @@ -1,3 +1,4 @@ FROM nginx:stable-alpine -COPY packages/web/nginx/default.conf /etc/nginx/conf.d/default.conf +ENV NGINX_ENTRYPOINT_LOCAL_RESOLVERS=1 NGINX_ENVSUBST_FILTER="^NGINX_LOCAL_RESOLVERS$" +COPY packages/web/nginx/default.conf.template /etc/nginx/templates/default.conf.template COPY dist/packages/web /usr/share/nginx/html diff --git a/packages/web/nginx/default.conf b/packages/web/nginx/default.conf.template similarity index 71% rename from packages/web/nginx/default.conf rename to packages/web/nginx/default.conf.template index 329b718..09e071e 100644 --- a/packages/web/nginx/default.conf +++ b/packages/web/nginx/default.conf.template @@ -1,3 +1,10 @@ +upstream crate_server { + zone crate_server 64k; + resolver ${NGINX_LOCAL_RESOLVERS} valid=5s; + resolver_timeout 5s; + server server:3030 resolve; +} + server { listen 80; server_name _; @@ -12,11 +19,12 @@ server { } location ~ ^/(api/|oauth/|oauth-client-metadata.json$|health$) { - proxy_pass http://server:3030; + proxy_pass http://crate_server; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Proto $scheme; proxy_http_version 1.1; proxy_request_buffering off; + proxy_connect_timeout 5s; proxy_read_timeout 300s; client_max_body_size 0; }