pm2托管的项目用nginx代理后刷新页面404?

pm2托管的项目用nginx代理后刷新页面404?
我的项目时在服务器7000端口,nginx在888端口,这个问题我在网上查的全是说加上箭头这句话,但是加上这句话后端的请求就请求不到了一直404,奇怪的是把这句话去掉后端请求又正常了,但是刷新页面404,有大佬可以解答一下吗


回答:

静态资源和api代理分开写:

#静态资源代理

location / {

root /usr/share/nginx/html;

try_files $uri $uri/ /index.html;

index index.html index.htm;

}

#接口代理

location /api {

proxy_pass http://xxx;

# ....

}


回答:

自己没弄清楚,前端输入的路由地址在后端没有配,我原本以为这个nginx可以解决,这个是需要一个插件connect-history-api-fallback,他在服务端使用可以解决单页面文件路由问题


回答:

要知其然还要知其所以然,否则就是你现在这个状态。

这行命令的意思是,对于用户请求的 pathname,先尝试 $uri 也就是准确文件;如果没有就尝试 $uri/ 也就是文件夹;都没有就请求 /index.html,交给它处理。

对于单页应用来说,这样做是必要的,因为很多 pathname 并没有对应的物理文件。

但是对于反向代理来说,这个配置就会破坏整个应用了。你要做的,是在 7000 的服务器做好类似的配置。


回答:

 server {

listen 8057;

root /home/web/;

location / {

index index.html;

try_files $uri $uri/ /index.html;

if ($uri ~* \.(html)$) {

add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate";

}

}

location /api/ {

proxy_set_header Host $http_host;

proxy_set_header X-Real-Ip $remote_addr;

proxy_set_header REMOTE-HOST $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://localhost:8080/;

}

}

给你一个我的配置例子。看着你的配置好像没问题,你别再宝塔这个地方看,你直接去看nginx的配置文件,/etc/nginx/ 里面看看。

以上是 pm2托管的项目用nginx代理后刷新页面404? 的全部内容, 来源链接: utcz.com/p/934581.html

回到顶部