diff --git a/Dockerfile b/Dockerfile index 1978d3d2..25caca33 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,6 +14,7 @@ RUN npm run init:app && npm run build FROM nginx:stable-alpine AS production-stage LABEL maintainer="Just van den Broecke " COPY --from=build-stage /app/dist /usr/share/nginx/html +COPY nginx/default.conf /etc/nginx/conf.d/default.conf EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] diff --git a/nginx/default.conf b/nginx/default.conf new file mode 100644 index 00000000..c7bc2404 --- /dev/null +++ b/nginx/default.conf @@ -0,0 +1,75 @@ +server { + listen 80; + listen [::]:80; + server_name localhost; + + #access_log /var/log/nginx/host.access.log main; + + # long cache for hashed build assets + location /assets/ { + root /usr/share/nginx/html; + expires 1y; + add_header Cache-Control "public, immutable"; + } + + # disable caching for frequently changing static config/resources + location /static/ { + root /usr/share/nginx/html; + expires -1; + add_header Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate"; + } + + # disable caching for SPA entry points + location = /index.html { + root /usr/share/nginx/html; + expires -1; + add_header Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate"; + } + + location = /embedded.html { + root /usr/share/nginx/html; + expires -1; + add_header Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate"; + } + + location / { + root /usr/share/nginx/html; + index index.html index.htm; + + # SPA fallback + try_files $uri $uri/ /index.html; + } + + #error_page 404 /404.html; + + # redirect server error pages to the static page /50x.html + # + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /usr/share/nginx/html; + } + + # proxy the PHP scripts to Apache listening on 127.0.0.1:80 + # + #location ~ \.php$ { + # proxy_pass http://127.0.0.1; + #} + + # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 + # + #location ~ \.php$ { + # root html; + # fastcgi_pass 127.0.0.1:9000; + # fastcgi_index index.php; + # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; + # include fastcgi_params; + #} + + # deny access to .htaccess files, if Apache's document root + # concurs with nginx's one + # + #location ~ /\.ht { + # deny all; + #} +} +