Strapi/Nginx - Strapi 路由在生产环境中不起作用

问题描述 投票:0回答:3

我创建了一个使用 nuxtjs 前端和 strapi 后端的网站。部署到 VPS 后,我无法让 Strapi 路由正常工作。我在互联网上阅读了多篇有关此问题的文章,并遵循了有关 nginx 代理的官方文档,但没有任何作用。

路径:/etc/nginx/sites-available/example.com

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

    # Strapi API and Admin
    location /strapi/ {
        rewrite ^/strapi/(.*)$ /$1 break;
        proxy_pass http://127.0.0.1:1337;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_pass_request_headers on;
    }
}

路径:backend/config/server.js

module.exports = ({ env }) => ({
  host: env('HOST', '0.0.0.0'),
  port: env.int('PORT', 1337),
  url: 'http://example.com/strapi',
});

访问 example.com 会按预期显示前端。访问 example.com/strapi 会显示以下站点:

单击“打开管理”按钮会将我引导至 example.com/admin,它会返回我的 404 前端错误页面。

我将非常感谢任何形式的帮助。

nginx routes nginx-config strapi
3个回答
2
投票

是的。 Strapi 的配置方式旨在与默认根路由一起使用,因此在这种情况下使用子域。

示例

api.example.com
当您登录 Strapi 时,它会点击
api.example.com/admin
等等。


1
投票

使用子域名更容易。但在您的情况下,访问 Strapi 和管理员的以下网址是:

  • example.com/strapi
  • example.com/strapi/admin

-2
投票

第一个位置语句与您所有的 http 调用相匹配 因此,即使使用 /strapi 路径的调用也会被重定向到您的前端应用程序 我想你必须改变顺序 尝试移动一下

location /strapi/

之前

location /
© www.soinside.com 2019 - 2024. All rights reserved.