当前位置:   article > 正文

docker vue nginx 反向代理404 跨域_vite 加前缀 nginx 404

vite 加前缀 nginx 404

场景:前端vue+vite,要通过docker nginx部署,后端请求没有统一的前缀,前端就自己加了一个/api,打包部署后访问就404

nginx代码:

  1. #user root;
  2. worker_processes 1;
  3. events {
  4. worker_connections 1024;
  5. }
  6. http {
  7. include mime.types;
  8. default_type application/octet-stream;
  9. sendfile on;
  10. keepalive_timeout 65;
  11. client_max_body_size 50M;
  12. server {
  13. listen 80;
  14. server_name localhost;
  15. location / {
  16. root /usr/share/nginx/html;
  17. try_files $uri $uri/ /index.html;
  18. index index.html index.htm;
  19. }
  20. location /api {
  21. proxy_pass http://xxxxx:xx;
  22. proxy_set_header Host $proxy_host; proxy_redirect off;
  23. }
  24. error_page 500 502 503 504 /50x.html;
  25. location = /50x.html {
  26. root html;
  27. }
  28. }
  29. }

经过:前后端都不是我做的,经过多番查找,发现/api这个前缀是前端加的,为啥?因为后端没有公共的前缀,没法做代理,所以前端加个这。nginx要代理也要有个公共前缀,那就想办法请求后去掉呗。

解决方法:在/api 和proxy_pass http://xxxxx:xx 后面都加/,单独给proxy_pass http://xxxxx:xx;后面加不行;

  1. #user root;
  2. worker_processes 1;
  3. events {
  4. worker_connections 1024;
  5. }
  6. http {
  7. include mime.types;
  8. default_type application/octet-stream;
  9. sendfile on;
  10. keepalive_timeout 65;
  11. client_max_body_size 50M;
  12. server {
  13. listen 80;
  14. server_name localhost;
  15. location / {
  16. root /usr/share/nginx/html;
  17. try_files $uri $uri/ /index.html;
  18. index index.html index.htm;
  19. }
  20. location /api/ {
  21. proxy_pass http://xxxx:xx/;
  22. proxy_set_header Host $proxy_host; proxy_redirect off;
  23. }
  24. error_page 500 502 503 504 /50x.html;
  25. location = /50x.html {
  26. root html;
  27. }
  28. }
  29. }

其实和docker没关系

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/254153
推荐阅读
相关标签
  

闽ICP备14008679号