Moi*_*tes 8 deployment nginx node.js svelte sveltekit
我有一个苗条的套件项目。我想在npm run build. 目前我有一个节点容器,我用来开始使用npm run preview. 它工作正常,但我想使用build.
我怎么能这么做呢?
参考:https://kit.svelte.dev/docs#command-line-interface-svelte-kit-build
正如@Caleb Irwin 所说,你可以运行node ./build/index.js
NGINX 配置将如下所示:
upstream sveltekit {
server 127.0.0.1:3000;
keepalive 8;
}
server {
# listen ...
# servername ...
# root ... (folder with an index.html in case of sveltekit being crashed)
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://sveltekit;
proxy_redirect off;
error_page 502 = @static;
}
location @static {
try_files $uri /index.html =502;
}
}
Run Code Online (Sandbox Code Playgroud)
(我不是 NGINX 专业人士,欢迎提供反馈以改进它)
HOST=127.0.0.1您可能还想通过在运行之前添加环境来使 SvelteKit 应用程序仅侦听 localhost node build/index.js。这将阻止从外部访问端口 3000。
您还可以考虑使用pm2来管理 sveltekit 进程,包括以集群模式在每个核心上运行它,在服务器崩溃/重新启动时自动重新启动。
如果您有一个静态网站(即没有端点),您应该使用@sveltejs/adapter-static@next. 它将把您应该提供的文件放在/build目录中。然后,您可以使用 NGINX 提供生成的页面。NGINX 配置示例如下:
server {
listen 80;
server_name test.jasonrigden.com;
root /path/to/build/directory;
index index.html;
}
Run Code Online (Sandbox Code Playgroud)
如果您的站点不是静态的,您应该@sveltejs/adapter-node在容器中使用并运行它。您可以将 NGINX 放在它前面以使用其功能(SSL、负载平衡、防火墙等)。构建站点(使用npm run build)后,您可以运行node ./build/index.js.
或者,您可以使用 Netlify、Vercel 或 Cloudflare Pages 来托管您的网站。
要了解如何更改适配器,请参阅文档。
祝你好运!
| 归档时间: |
|
| 查看次数: |
15067 次 |
| 最近记录: |