nginx重写路由再代理到nuxt.js后与服务端渲染不一至

新手上路,请多包涵

题目描述

比如 nuxt.js 路由是 /article/info/5,nginx重写后变成 /ai5/ 再还原之后代理到3000端口,这时提示与服务器端渲染不一至

题目来源及自己的思路

没有思路

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
nginx反向代理配置如下
location /__webpack_hmr{

proxy_pass                  http://127.0.0.1:3000;
proxy_set_header            Host $host; 
proxy_set_header            X-Real-IP $remote_addr; 
proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
break;

}

location ~ /ai(d+)/ {

#return 404;
rewrite ^/ai(\d+)/$ /article/info/$1/ break;

proxy_pass                  http://127.0.0.1:3000;
proxy_set_header            Host $host; 
proxy_set_header            X-Real-IP $remote_addr; 
proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
break;

}

location ~ /c(d+)/ {

#return 404;
rewrite ^/c(\d+)/$ /category/$1/ break;

proxy_pass                  http://127.0.0.1:3000;
proxy_set_header            Host $host; 
proxy_set_header            X-Real-IP $remote_addr; 
proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
break;

}

location /al/ {

#return 404;
rewrite ^/al/$ /article/list/ break;

proxy_pass                  http://127.0.0.1:3000;
proxy_set_header            Host $host; 
proxy_set_header            X-Real-IP $remote_addr; 
proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
break;

}

location ~ /al(d+)/ {

#return 404;
rewrite ^/al(\d+)/$ /article/list/$1/ break;

proxy_pass                  http://127.0.0.1:3000;
proxy_set_header            Host $host; 
proxy_set_header            X-Real-IP $remote_addr; 
proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
break;

}

location /as/ {

#return 404;
rewrite ^/as/$ /article/special/ break;

proxy_pass                  http://127.0.0.1:3000;
proxy_set_header            Host $host; 
proxy_set_header            X-Real-IP $remote_addr; 
proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
break;

}

location ~ /as(d+)/ {

#return 404;
rewrite ^/as(\d+)/$ /article/special/info/$1/ break;

proxy_pass                  http://127.0.0.1:3000;
proxy_set_header            Host $host; 
proxy_set_header            X-Real-IP $remote_addr; 
proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
break;

}

location ~ /asl(d+)/ {

#return 404;
rewrite ^/asl(\d+)/$ /article/special/$1/ break;

proxy_pass                  http://127.0.0.1:3000;
proxy_set_header            Host $host; 
proxy_set_header            X-Real-IP $remote_addr; 
proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
break;

}

location ~ /aki(d+)/ {

#return 404;
rewrite ^/aki(\d+)/$ /ask/info/$1/ break;

proxy_pass                  http://127.0.0.1:3000;
proxy_set_header            Host $host; 
proxy_set_header            X-Real-IP $remote_addr; 
proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
break;

}

location / {

if ( $request_uri !~* ^/api ) {
    rewrite ^/article/info/(\d+)(\/?)$ /ai$1/ permanent;
    rewrite ^/article/list/(\d+)(\/?)$ /al$1/ permanent;
    rewrite ^/article/list(\/?)$ /al/ permanent;
    rewrite ^/article/special/info/(\d+)(\/?)$ /as$1/ permanent;
    rewrite ^/article/special/(\d+)(\/?)$ /asl$1/ permanent;

    rewrite ^/article/special(\/?)$ /as/ permanent;
    rewrite ^/category/(\d+)(\/?)$ /c$1/ permanent;

    rewrite ^/ask/info/(\d+)(\/?)$ /aki$1/ permanent;
    rewrite ^([^.]*[^/])$ $1/ permanent;
}

proxy_pass                  http://127.0.0.1:3000;
proxy_set_header            Host $host; 
proxy_set_header            X-Real-IP $remote_addr; 
proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;

}

阅读 1.6k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题