b1d8b839dd
* remove global npm install of create-next-app * add npx to create-next-app command in examples * add bash to shell snippets * add yarn create to next-app command in examples * fix READMEs named with lowercase * change READMEs to use UPPERCASE |
||
---|---|---|
.. | ||
blog | ||
home | ||
package.json | ||
README.md | ||
rules-dev.json | ||
rules-prod.json |
Using multiple zones
With Next.js you can use multiple apps as a single app using it's multi-zones feature. This is an example showing how to use it.
In this example, we've two apps: 'home' and 'blog'.
We also have a set of rules defined in rules.json
for the proxy.
Now let's start two of our app using:
npm run home
npm run blog
Then start the proxy:
npm run proxy
Now you can visit http://localhost:9000 and access and develop both apps a single app.
Proxy Rules
This is the place we define rules for our proxy. Here are the rules(in rules.json
) available for this app:
{
"rules": [
{"pathname": "/blog", "method":["GET", "POST", "OPTIONS"], "dest": "http://localhost:5000"},
{"pathname": "/**", "dest": "http://localhost:4000"}
]
}
These rules are based on ZEIT now path alias rules and use micro-proxy
as the proxy.
Special Notes
- All pages should be unique across zones. A page with the same name should not exist in multiple zones. Otherwise, there'll be unexpected behaviour in client side navigation.
- According to the above example, a page named
blog
should not be exist in thehome
zone.
- According to the above example, a page named
Production Deployment
Here's how are going to deploy this application into production.
- Open the
now.json
file in bothblog
andhome
directories and change the aliases as you wish. - Then update
rules-prod.json
accordingly. - Now deploy both apps:
cd home
now && now alias
cd ../blog
now && now alias
cd ..
- Finally, set the path alias rules with
now alias with-zones.now.sh -r rules-prod.json
You can use a domain name of your choice in the above command instead of
with-zones.now.sh
.
That's it. Now you can access the final app via: https://with-zones.now.sh