로컬 개발 서버에서 테스트를 위해 프리 렌더를 사용하고 싶습니다. Flask (웹 사이트 백엔드) 용 응용 프로그램 서버는 localhost : 5000에서 실행 중이며 이제는 localhost : 3000에 프리 렌더 서버를 이미 설정했습니다.로컬 테스트 서버로 프리 렌킹
: 미리 렌더링을위한 GitHub의 페이지에서 는, 내가이 개 질문이 지역의 서비스로 미리 렌더링을 사용하기 위해 내 nginx를 구성 파일server {
listen 80;
server_name example.com;
root /path/to/your/root;
index index.html;
location/{
try_files $uri @prerender;
}
location @prerender {
#proxy_set_header X-Prerender-Token YOUR_TOKEN;
set $prerender 0;
if ($http_user_agent ~* "baiduspider|twitterbot|facebookexternalhit|rogerbot|linkedinbot|embedly|quora link preview|showyoubot|outbrain|pinterest|slackbot|vkShare|W3C_Validator") {
set $prerender 1;
}
if ($args ~ "_escaped_fragment_") {
set $prerender 1;
}
if ($http_user_agent ~ "Prerender") {
set $prerender 0;
}
if ($uri ~ "\.(js|css|xml|less|png|jpg|jpeg|gif|pdf|doc|txt|ico|rss|zip|mp3|rar|exe|wmv|doc|avi|ppt|mpg|mpeg|tif|wav|mov|psd|ai|xls|mp4|m4a|swf|dat|dmg|iso|flv|m4v|torrent|ttf|woff)") {
set $prerender 0;
}
#resolve using Google's DNS server to force DNS resolution and prevent caching of IPs
resolver 8.8.8.8;
if ($prerender = 1) {
#setting prerender as a variable forces DNS resolution since nginx caches IPs and doesnt play well with load balancing
set $prerender "service.prerender.io";
rewrite .* /$scheme://$host$request_uri? break;
proxy_pass http://$prerender;
}
if ($prerender = 0) {
rewrite .* /index.html break;
}
}
}
에도
export PRERENDER_SERVICE_URL=<your local url>
및 필요 말한다
1.What는
export PRERENDER_SERVICE_URL=<your local url>
할
합니까? 그리고 "내 로컬 URL"을 어떻게 설정해야합니까? 웹 서버용 응용 프로그램 서버의 URL (localhost : 5000) 또는 프리 렌더 서버 (localhost : 3000)의 URL이어야합니까?2.I에는 내 nginx.conf을 변경
server {
listen 80;
server_name localhost:5000;
root /path/to/my/root;
index index.html;
location/{
try_files $uri @prerender;
}
location @prerender {
#proxy_set_header X-Prerender-Token YOUR_TOKEN;
set $prerender 0;
if ($http_user_agent ~* "baiduspider|twitterbot|facebookexternalhit|rogerbot|linkedinbot|embedly|quora link preview|showyoubot|outbrain|pinterest|slackbot|vkShare|W3C_Validator") {
set $prerender 1;
}
if ($args ~ "_escaped_fragment_") {
set $prerender 1;
}
if ($http_user_agent ~ "Prerender") {
set $prerender 0;
}
if ($uri ~ "\.(js|css|xml|less|png|jpg|jpeg|gif|pdf|doc|txt|ico|rss|zip|mp3|rar|exe|wmv|doc|avi|ppt|mpg|mpeg|tif|wav|mov|psd|ai|xls|mp4|m4a|swf|dat|dmg|iso|flv|m4v|torrent|ttf|woff)") {
set $prerender 0;
}
#resolve using Google's DNS server to force DNS resolution and prevent caching of IPs
resolver 8.8.8.8;
if ($prerender = 1) {
#setting prerender as a variable forces DNS resolution since nginx caches IPs and doesnt play well with load balancing
set $prerender "localhost:3000";
rewrite .* /$scheme://$host$request_uri? break;
proxy_pass http://$prerender;
}
if ($prerender = 0) {
rewrite .* /index.html break;
}
}
}
을 그리고 작동하지 않습니다. localhost (localhost : 80)에 액세스하면 404가 없습니다. localhost : 5000에 트래픽을 올바르게 라우팅하지 않는 것 같습니다.
내가 뭘 잘못했는지에 대한 아이디어가 있습니까? 많은 감사합니다!