express - nginx运行node程序,路由跳转是404,静态文件可以正常加载

浏览:44日期:2022-06-26

问题描述

nginx的配置代码是这样的

server {listen 80 default_server;listen [::]:80 default_server;index index.html index.htm index.nginx-debian.html;server_name _;location / {# First attempt to serve request as file, then# as directory, then fall back to displaying a 404.root /home/ubuntu/card/public;try_files $uri $uri/ =404;proxy_pass http://127.0.0.1:3000;}}

node程序本身没有问题

问题解答

回答1:

我的理解是try_files 如果不成功,应该让express服务器尝试响应

location / {

root /home/ubuntu/card/public; try_files $uri $uri/ @proxy; }

location @proxy {

proxy_pass http://127.0.0.1:3000;

}

回答2:

假设你的目录/home/ubuntu/card/public下有个叫uploads的文件夹,nginx配置如下

server { listen 80 default_server; listen [::]:80 default_server; server_name _; location / {proxy_pass http://127.0.0.1:3000; } location /uploads {root /home/ubuntu/card/public/;index index.html index.htm index.nginx-debian.html;try_files $uri $uri/ =404; }}

那么访问http://localhost/会跳到nodejs,http://localhost/uploads/会访问/home/ubuntu/card/public/uploads下的静态文件。

相关文章: