diff --git a/Dockerfile b/Dockerfile index e8dfef2..97781c3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ FROM nginx:alpine -COPY public /var/www +COPY ./public /var/www COPY nginx.conf /etc/nginx/nginx.conf EXPOSE 80 ENTRYPOINT ["nginx","-g","daemon off;"] diff --git a/nginx.conf b/nginx.conf index 5bd1e5c..d56813d 100644 --- a/nginx.conf +++ b/nginx.conf @@ -1,37 +1,61 @@ -events {} -http { - include /etc/nginx/mime.types; - default_type application/octet-stream; - log_format compression '$remote_addr - $remote_user [$time_local] ' - '"$request" $status $upstream_addr ' - '"$http_referer" "$http_user_agent"'; +# auto detects a good number of processes to run +worker_processes auto; - server { - listen 80; - access_log /var/log/nginx/access.log compression; - - root /var/www; - index index.html index.htm; - - location / { - try_files $uri $uri/ /index.html; - } - - location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ { - expires 1M; - access_log off; - add_header Cache-Control "public"; - } - - location ~* \.(?:css|js)$ { - try_files $uri =404; - expires 1y; - access_log off; - add_header Cache-Control "public"; - } - - location ~ ^.+\..+$ { - try_files $uri =404; - } - } +#Provides the configuration file context in which the directives that affect connection processing are specified. +events { + # Sets the maximum number of simultaneous connections that can be opened by a worker process. + worker_connections 8000; + # Tells the worker to accept multiple connections at a time + multi_accept on; +} + + +http { + # what times to include + include /etc/nginx/mime.types; + # what is the default one + default_type application/octet-stream; + + # Sets the path, format, and configuration for a buffered log write + log_format compression '$remote_addr - $remote_user [$time_local] ' + '"$request" $status $upstream_addr ' + '"$http_referer" "$http_user_agent"'; + + server { + # listen on port 80 + listen 80; + # save logs here + access_log /var/log/nginx/access.log compression; + + # where the root here + root /var/www; + # what file to server as index + index index.html index.htm; + + location / { + # First attempt to serve request as file, then + # as directory, then fall back to redirecting to index.html + try_files $uri $uri/ /index.html; + } + + # Media: images, icons, video, audio, HTC + location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ { + expires 1M; + access_log off; + add_header Cache-Control "public"; + } + + # Javascript and CSS files + location ~* \.(?:css|js)$ { + try_files $uri =404; + expires 1y; + access_log off; + add_header Cache-Control "public"; + } + + # Any route containing a file extension (e.g. /devicesfile.js) + location ~ ^.+\..+$ { + try_files $uri =404; + } + } }