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

s8vozzvw  于 2023-10-17  发布在  Nginx
关注(0)|答案(4)|浏览(145)

我创建了一个使用nuxtjs前端和strapi后端的网站。部署到VPS后,我无法让strapi路由工作。我在网上读了很多关于这个的帖子,并遵循了关于nginx加密的官方文档,但没有evail。
/etc/nginx/sites-available/www.example.com 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可以看到以下网站:

点击“Open admistration”按钮,我会进入example.com/admin,它会返回404前端错误页面。
我将非常感谢任何形式的帮助。

imzjd6km

imzjd6km1#

是的。strapi的配置方式是为了与默认根路由一起使用,所以在这种情况下使用子域。
例如api.example.com,当你登录到strapi时,它会点击api.example.com/admin等等。

vom3gejh

vom3gejh2#

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

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

yrwegjxp3#

我在strapi上用npm run build解决了它,然后用npm run develop解决了它。

cx6n0qe3

cx6n0qe34#

第一个location语句与所有的http调用匹配,因此即使是带有/strapi路径的调用也会被重定向到您的前端应用程序,我认为您必须更改顺序,尝试移动

location /strapi/

之前

location /

相关问题