server {
  # Use relative redirects to account for situations where a front-end proxy is
  # used and the container does not know the public domain and port
  absolute_redirect off;
  listen 4000;
  error_page 403 404 /404.html;
  root   /usr/share/nginx/html;
  index  index.html;

  # Enable aio for better performance (see https://www.nginx.com/blog/thread-pools-boost-performance-9x/)
  aio threads;

  location ~ ^/v([\d\.]+)/(.*)$ {
    # Archive URLs: first try if the given file is still hosted, otherwise
    # redirect to the same URL in the current version of the docs.
    try_files $uri $uri/ @redirect_current;
  }

  location @redirect_current {
    # Do a 301 (moved permanently) redirect of archive pages we didn't find
    # to the same location in the current docs. Note that the location redirected
    # to may not (or no longer) exist, and as such could result in another 301
    # redirect, or a 404.
    rewrite ^/v([\d\.]+)/(.*)$ /$2 permanent;
  }
}
