我创建了一个使用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前端错误页面。
我将非常感谢任何形式的帮助。
4条答案
按热度按时间imzjd6km1#
是的。strapi的配置方式是为了与默认根路由一起使用,所以在这种情况下使用子域。
例如
api.example.com
,当你登录到strapi时,它会点击api.example.com/admin
等等。vom3gejh2#
使用子域更容易。但在您的情况下,以下网址访问strapi和管理员:
yrwegjxp3#
我在strapi上用
npm run build
解决了它,然后用npm run develop
解决了它。cx6n0qe34#
第一个location语句与所有的http调用匹配,因此即使是带有/strapi路径的调用也会被重定向到您的前端应用程序,我认为您必须更改顺序,尝试移动
之前