https://github.com/nicejade/prerender-spa-server
For serving your prerendered HTML to crawlers for SEO, through Prerender & Redis & Nginx.
https://github.com/nicejade/prerender-spa-server
Last synced: about 1 year ago
JSON representation
For serving your prerendered HTML to crawlers for SEO, through Prerender & Redis & Nginx.
- Host: GitHub
- URL: https://github.com/nicejade/prerender-spa-server
- Owner: nicejade
- Created: 2022-09-30T14:51:13.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2023-11-21T14:06:04.000Z (over 2 years ago)
- Last Synced: 2025-03-23T19:14:00.827Z (over 1 year ago)
- Language: JavaScript
- Size: 18.6 KB
- Stars: 6
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Prerender SPA Server
Prerender SPA Server:For serving your prerendered HTML to crawlers for SEO, through Prerender & Redis & Nginx.
## How to Use
The quickest way to run your own prerender server:
### **Clone & Install dependencies**
```bash
# clone prerender-spa-server
git clone https://github.com/nicejade/prerender-spa-server.git
cd prerender-spa-server
# install dependencies
pnpm i
# OR yarn / npm
```
### **Deploy Server**
```bash
# deploy server
yarn deploy
```
### **Configure Nginx**
```bash
location / {
set $prerender 0;
if ($http_user_agent ~* "Googlebot|googlebot|bingbot|baiduspider|twitterbot|facebookexternalhit|rogerbot|embedly|quora link preview|showyoubot|outbrain|pinterest|slackbot|vkShare|W3C_Validator") {
set $prerender 1;
}
if ($args ~ "_escaped_fragment_") {
set $prerender 1;
}
if ($prerender = 1) {
set $prerender "127.0.0.1:3000";
rewrite .* /$scheme://$host$request_uri? break;
proxy_pass http://$prerender;
}
}
```
### How Test It
```bash
curl http://localhost:3000/render?url=https://www.example.com/
```
## How to dev
```
git clone https://github.com/nicejade/prerender-spa-server.git
cd prerender-spa-server
code ./
```
## Inspiration Source
### [Prerender](https://nicelinks.site/post/62e60030bd6b821eb12244e2)
> Prerender is a node server that uses Headless Chrome to render HTML, screenshots, PDFs, and HAR files out of any web page. The Prerender server listens for an http request, takes the URL and loads it in Headless Chrome, waits for the page to finish loading by waiting for the network to be idle, and then returns your content.
### [Redis](https://nicelinks.site/post/603e39560c8e4b046a182003)
> Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. Redis provides data structures …
"Redis Client Error Error: connect ECONNREFUSED 127.0.0.1:6379", If you encounter this problem on the server, see the article [redis-server --daemonize yes](https://memo.lovejade.cn/m/333).
### [Nginx](https://nicelinks.site/post/6339a6aa35a9c117dacf2363)
> nginx [engine x] is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server, originally written by Igor Sysoev. For a long time, it has been running on many heavily loaded Russian sites including Yandex, Mail.Ru, VK, and Rambler. According to Netcraft, nginx served or proxied 21.62% busiest sites in August 2022.
### [Prerender In-Memory Cache plugin](https://github.com/prerender/prerender-memory-cache)
> In memory cache for use with Prerender server.
## License
The MIT License ( [MIT](http://opensource.org/licenses/MIT) ) .
Copyright (c) 2022-present, [nicejade](https://nicelinks.site/member/admin) .