需要有关在 Linux 服务器上运行 React 应用的建议

需要有关在 Linux 服务器上运行 React 应用的建议

我被困在客户端 Linux 服务器上运行 React 应用的问题上。同一台服务器上托管着一个现有网站,该网站由 nginx 提供服务。我的目标是将新的 Web 应用集成到 /new-app。但我没有成功。我尝试使用 nginx 配置在 /sites-enabled/ 和 /sites-available/ 为我的应用添加一个新文件,但我最接近的方法是让应用显示在 ipaddress/new-app 上。因此,我研究了 docker 作为解决方案,但我被困在那里,因为唯一提供的是 nginx 欢迎页面。

这是我的 nginx/docker 文件

server {
  listen 80;
  location / {
    root   /usr/share/nginx/html;
    index  index.html index.htm;
    try_files $uri $uri/ /index.html;  }
  error_page 500 502 503 504 /50x.html;
  location = /50x.html {
    root  /usr/share/nginx/html;
  }
}

Dockerfile:

# Stage 0, "build-stage", based on Node.js to build the frontend
FROM node:alpine as build
WORKDIR /app
COPY package*.json /app/
RUN npm install
COPY . /app/
RUN npm run build

# Stage 1, based on NGINX to provide a configuration to be used with react-router
FROM nginx:alpine
COPY --from=build /app/build /usr/share/nginx.html
RUN rm /etc/nginx/conf.d/default.conf
COPY nginx/nginx.conf /etc/nginx/conf.d
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

非常感谢任何建议/意见!

答案1

首先,“站点”sites-enabled实际上是一个虚拟主机,因此如果您想让新应用程序在现有虚拟主机的路径下可用,则需要修改该虚拟主机server块的配置,而不是在中创建单独的配置文件sites-available

从那里开始,这是一个相对简单的 HTTP 反向代理配置,按照精美手册

相关内容