簡體   English   中英

我應該使用 Nginx 在生產中服務 React 嗎?

[英]Should I be using Nginx to serve React in production?

我正在使用 React 和 Node.js 在 Kubernetes 上構建一個 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 為構建提供服務,如下所示。 這似乎是“正確的方法”,但我不確定使用服務 npm package 的優勢是什么,盡管它對我來說確實感覺很hacky。 似乎可以使用 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 的 RAM :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM