我被困在客户端 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 反向代理配置,按照精美手册。