rsnext/examples/custom-routes-proxying
James Mosier 75b25901d0
Update examples React to 16.13.1 (#14899)
Fast Refresh doesn't appear to work with older version (16.8.x) versions of React. I was able to reproduce this via this issue https://github.com/vercel/next.js/issues/14895

I updated all examples I found of React `16.8.x` to `^16.13.1` so that future installs will auto bump to the latest minor version. Previously the pinned version was causing the lock of version.
2020-07-07 03:58:13 +00:00
..
pages Add example for proxying upstream with custom routes (#14374) 2020-06-22 00:44:04 +00:00
next.config.js De-experimentalize custom-routes (#14602) 2020-06-27 09:18:18 +00:00
package.json Update examples React to 16.13.1 (#14899) 2020-07-07 03:58:13 +00:00
README.md Add example for proxying upstream with custom routes (#14374) 2020-06-22 00:44:04 +00:00

Custom Routes Proxying Example

This example shows the most basic example using Next.js' new custom routes feature to proxy requests to an upstream server. We have 3 pages: pages/index.js, pages/about.js, and pages/hello/[slug].js. All of these pages will be matched against Next.js and any other path will be proxied to the upstream server.

This approach is very helpful when you are trying to incrementally migrate your application to Next.js but still need to fallback to an existing application. You can add pages to your Next.js application one-by-one and then for non-migrated pages Next.js can proxy to the existing application until they are able to be migrated.

How to use

Using create-next-app

Execute create-next-app with npm or Yarn to bootstrap the example:

npx create-next-app --example custom-routes-proxying custom-routes-proxying-app
# or
yarn create next-app --example custom-routes-proxying custom-routes-proxying-app

Download manually

Download the example:

curl https://codeload.github.com/vercel/next.js/tar.gz/canary | tar -xz --strip=2 next.js-canary/examples/custom-routes-proxying
cd custom-routes-proxying

Step 4. Run Next.js in development mode

npm install
npm run dev

# or

yarn install
yarn dev

Test out visiting one of the Next.js pages https://localhost:3000/ and then a non-Next.js page like http://localhost:3000/legacy-first.html or http://localhost:3000/another-legacy.html which will be proxied to the upstream server since it doesn't match any pages/assets in Next.js.

Deploy it to the cloud with Vercel (Documentation). Note: to deploy this example you will need to configure an existing upstream server.