我正在Kubernetes上使用React和Node.js构建SPA。我为前端和后端服务分别提供服务和入口。我已经看到人们也使用Nginx服务于React构建,但是我发现下面做的很好。
# Dockerfile.production
FROM node:8.7.0-alpine
RUN mkdir -p /usr/app/client
WORKDIR /usr/app/client
COPY package*.json /usr/app/client/
RUN npm install
RUN npm install -g serve
COPY . /usr/app/client
EXPOSE 3000
RUN npm run build
CMD ["serve", "-s", "build", "-l", "3000" ]
另外,我可以像下面那样使用Nginx服务构建。这似乎是“正确的方法”,但是我不确定使用serve npm软件包的好处是什么,尽管它对我来说确实很棘手。似乎可以使用Nginx配置以服务该应用程序的所有内容都可以在Ingress中完成,对吗?
server {
server_name example.com;
...
location ~ / {
root /var/www/example.com/static;
try_files $uri /index.html;
}
}
服务很好。Nginx可能会使用更少的RAM来提供服务,但是会通过携带所有您未使用的额外功能而被抵消。我们为许多K8s SPA使用了类似的Serve设置,在满载时每个Pod使用60至100MB的RAM。对于其他一些应用程序,我们有一个精简版的Caddy,它的最大容量约为70MB,而不是稍少一些,但可能有更好的方法来担心30MB的内存:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句