【问题标题】:Should I be using Nginx to serve React in production?我应该使用 Nginx 在生产中为 React 提供服务吗?
【发布时间】:2020-07-25 10:30:49
【问题描述】:

我正在 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 包的优势是什么,尽管它对我来说确实很hacky。似乎所有可以使用 Nginx 配置为应用程序提供服务的东西也可以在 Ingress 中完成,对吧?

server {
    server_name example.com;
    ...

    location ~ / {
        root /var/www/example.com/static;
        try_files $uri /index.html;
    }
}

【问题讨论】:

    标签: node.js reactjs nginx kubernetes dockerfile


    【解决方案1】:

    服务很好。 Nginx 可能会使用少几个字节的 RAM 来提供服务,但这将通过携带所有您不使用的额外功能来抵消。我们为我们的许多 K8s SPA 使用了类似的 Serve 设置,它在满负载时每个 Pod 使用 60 到 100MB 的 RAM。对于其他一些应用程序,我们有 Caddy 的精简版,它的最大容量约为 70MB,但稍微少了一点,但可能有更好的方法来担心 30MB 的 RAM :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-07
      • 1970-01-01
      • 2014-03-11
      • 2023-01-05
      • 1970-01-01
      • 1970-01-01
      • 2015-01-17
      • 2016-06-26
      相关资源
      最近更新 更多