Nginx-具有2个Nginx反向代理服务器的云服务器

三重阮

我有一个云服务器ubuntu 18.04,我有一个后端API(.NET Core)和一个前端Angular应用程序(两个应用程序都部署在docker容器中)。后端API首先上传,因此我在云服务器上配置了Nginx代理然后当我对Angular应用程序进行dockerize时,但所有示例都通过nginx进行了dockerized。是否可以在没有nginx的情况下独立实现Angular应用的docker化?

因此,现在,云服务器具有两个Nginx反向代理。一台在服务器上,一台在Angular容器中@@

我的想法

  1. 如果我将IP地址公开给外界,所有请求将直接转发到Angular容器IP。
  2. 如果我不公开有角容器(设置防火墙)的IP。请求必须通过2个Nginx代理(因为现在已与Nginx一起部署了角度应用程序)。在没有Nginx的情况下,如何才能将Angular应用泊坞窗?
  3. 我应该同时为后端和前端同时部署nginx和容器吗?
  4. 一台云服务器应该是一个应用程序的一台nginx。然后我拆分了两个后端和前端,每个部署了单独的云服务器。
迪克先生47

在评论部分进行讨论之后,我想我将分享我的angular-app Dockerfile和Docker组成配置文件以供参考:

FROM node:12-alpine
ARG mode=prod
ENV mode=$mode

RUN apk --no-cache add \
tzdata \
git \
python \
g++ \
make

ENV TZ=${TZ:-America/Chicago}
RUN echo "$TZ" > /etc/timezone && date

EXPOSE 4200
USER node
WORKDIR /home/node

#To take advantage of docker's caching, first only copy the package.json and
# package-lock.json, then run npm install
COPY package*.json ./
RUN npm install

#This way the node_modules will be stored in an image build stage cache,
# which means it won't need to reinstall node_modules every build, but will
# reinstall them if either the package.json or package-lock.json file changes.

COPY *.js* ./
COPY src ./src

RUN [[ -z $mode ]] && npm run build || npm run build:$mode

泊坞窗撰写:

version: '3.4'

services:
  express-api:
    container_name: express-api
    build: ./express-api
    user: ${DOCKER_USER:-0:0}
    expose:
      - "3000"
    restart: "unless-stopped"
    environment:
      - TZ=America/Chicago
    volumes:
      - ./express-api/ssl-certs/:/home/node/ssl-certs:ro

  angular-app:
    container_name: angular-app
    build:  ./angular-app
    user: ${DOCKER_USER:-0:0}
    expose:
      - "4200"
    restart: "on-failure"
    environment:
      - TZ=America/Chicago
    volumes:
      - app_dist:/home/node/dist
      - ./angular-app/ssl-certs/:/home/node/ssl-certs:ro

  angular-docs:
    container_name: angular-docs
    build:
      context: ./angular-app
      dockerfile: Dockerfile-docs
    user: ${DOCKER_USER:-0:0}
    expose:
      - "8080"
    restart: "on-failure"
    environment:
      - TZ=America/Chicago

  nginx-server:
    container_name: nginx-server
    build: ./nginx-server
    expose:
      - "80"
      - "443"
    restart: "unless-stopped"
    environment:
      - TZ=America/Chicago
    volumes:
      - ./nginx-server/nginx.conf:/etc/nginx/nginx.conf:ro
      - ./nginx-server/ssl-certs/:/etc/nginx/ssl-certs:ro
      - app_dist:/var/www:ro

volumes:
  app_dist:

然后将组成文件与此文件合并以进行生产:

version: '3.4'

services:
  express-api:
    env_file: prod.env

  angular-app:
    build:
      args:
        mode: "prod"
    env_file: prod.env

  nginx-server:
    ports:
      - "80:80"
      - "443:443"
    env_file: prod.env

在我的角度包json中,我有以下脚本:

"build": "node --max_old_space_size=4096 node_modules/@angular/cli/bin/ng build",
"build:prod": "node --max_old_space_size=4096 node_modules/@angular/cli/bin/ng build --prod",

我在发布之前从其中删除了一些行,但是它们应该可以帮助您入门。此设置使用一个容器来构建angular-app分发文件,并将其存储在与nginx容器共享的卷中,该容器为文件提供服务,并具有express-api后端的反向代理。

DOCKER_USER env变量是通过bash脚本预先设置的:

export DOCKER_USER="${USERID:-1000}:${USERGID:-1000}"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用SSL在Nginx反向代理后面运行Go服务器

使用Nginx反向代理进行服务器

如何在Nginx代理服务器中启用CORS?

如何使Elastic Beanstalk Nginx支持的代理服务器从HTTP自动重定向到HTTPS?

nginx代理服务器本地主机权限被拒绝

如何使BrowserSync与Nginx代理服务器一起使用?

您如何从充当Node.js服务器反向代理的Nginx服务器提供静态文件?

使用Nginx反向代理服务器隐藏客户端请求标头

如何将nginx用作Bluemix上的动态负载平衡代理服务器?

如何在Nginx中更改代理服务器响应的状态码?

带有护照和Nginx作为代理服务器的身份验证问题Node.js

如何将nginx.org配置为渡槽服务器的代理服务器?

Nginx服务器变量

一台服务器上的两个反向代理,nginx

具有Nginx反向代理的Ubuntu服务器上的Nodejs / Socket.io-“失败:连接建立错误:net :: ERR_CONNECTION_TIMED_OUT”

我无法使用Nginx作为Nexus的反向代理服务器登录Docker

Docker中用于Express.js服务器的Nginx反向代理

使用nginx作为代理服务器时,将错误从nginx传递到node.js

如何清除Nginx代理服务器上静态文件的缓存

Nginx与代理服务器的位置

Nginx作为通用代理服务器

Nginx从代理服务器向Cookie添加安全标志

Nginx和Apache2(代理服务器)

Nginx“无法启动高性能Web服务器和反向代理服务器。”

Nginx-反向代理具有多个路径的WebSocket服务器

Nginx没有启动服务器

带有反向代理 Nginx 服务器和 nodejs 的 CORS 将无法工作

Nginx 启动失败 一个高性能的 web 服务器和一个反向代理服务器

如何在远程服务器中设置nginx反向代理