经过几个小时的网络搜索,我发现很难理解我应该如何部署我的remixjs应用程序。我只是试图将我的remixjs应用程序部署到一个数字海洋Dropplet上,它也将使用nginx作为反向代理。
以下是我目前的理解:
- 我需要Nginx作为反向代理,通过HTTPS提供内容,HTTPS已经使用let's encrypt设置,并且适用于提供静态内容。
- 我有一个使用
remix build
构建的Remixjs应用程序,我从remix文档中了解到,“此命令将设置process.env.NODE_ENV为生产并缩小部署的输出。" - 结果是两个目录
/build/
和/public/build/
,并且来自文档:“只有构建构件(build/,public/build/)需要部署到生产环境” - 据我所知,如果我只是提供静态内容,我可以只使用nginx,只复制包含
index.html
的文件夹。但我认为,由于我的内容是动态的,这就是为什么我使用index.js
,而它不适用于nginx。 - 所以我需要部署另一个服务器,然后将请求从nginx路由到该服务器。
- 我不知道如何设置服务器,所以我想使用Remix应用服务器。从文档中:“Remix是为你自己的服务器而设计的,但如果你不想设置一个,你可以使用Remix应用服务器。它是一个生产就绪的,但基本的Node.js服务器,用Express构建。"
- 我的直觉告诉我复制两个构建目录,然后运行
remix-serve build
,但这似乎不起作用,没有package.json我无法运行npm install
,但我觉得我需要的一切都应该包含在构建文件中。
所以我的问题本质上归结为如何运行remix-serve build
来使用两个构建工件文件夹在我的远程机器上使用Remix App Server?或者有必要将整个项目克隆到远程机器上然后构建和运行吗?看起来正确的方法是利用两个构建工件文件夹,但我不清楚如何做到这一点。
任何解释将不胜感激!
2条答案
按热度按时间hec6srdp1#
你很想创建一个从systemd服务执行的shell脚本,我把我的npm install,build和express server start封装到一个shell脚本中。
字符串
我的服役档案
型
一旦您启用该服务,它将根据需要连续运行混音服务器
型
9cbw7uwe2#
我将
build
,public/build
,package.json
复制到我远程机器上的一个类似my-remix-deploy
的文件夹中,在my-remix-deploy
文件夹下运行npm install
,然后通过npx remix-serve build/index.js &> /dev/null &
启动它。顺便说一下,我使用npx create-remix@latest --template remix-run/remix/templates/remix
创建我的项目。