Reactjs 如何在docker上的Nginx反向代理中重定向多个应用程序?

Reactjs 如何在docker上的Nginx反向代理中重定向多个应用程序?,reactjs,docker,ssl,nginx,reverse-proxy,Reactjs,Docker,Ssl,Nginx,Reverse Proxy,我正在docker上运行nginx反向代理和两个React.js应用程序。我想通过添加/app1或/app2,使两个应用都可以通过同一端口访问。当我只有http时,它工作了,但现在我添加了ssl,它不工作了 这是我的default.conf server { listen 80; listen [::]:80; server_name xxx.xxx.xxx.xx; if ($scheme = http) { return 301

我正在docker上运行nginx反向代理和两个React.js应用程序。我想通过添加/app1或/app2,使两个应用都可以通过同一端口访问。当我只有http时,它工作了,但现在我添加了ssl,它不工作了

这是我的default.conf

    server {
    listen 80;
    listen [::]:80;
    server_name  xxx.xxx.xxx.xx;
    if ($scheme = http) {
           return 301 https://$server_name$request_uri;
    }
  
}

server {
    listen              443 ssl; # 'ssl' parameter tells NGINX to decrypt the traffic
    server_name         xxx.xxx.xxx.xx;
    ssl on;
    ssl_certificate     xxx.xxx.xxx.xx.pem;
    ssl_certificate_key xxx.xxx.xxx.xx-key.pem;

  ssi on;
  proxy_intercept_errors on;

  location /app1 {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_pass http://app1:5000;

      # WebSocket support
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
  }

  location /app2 {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_pass http://app2:5000;

    # WebSocket support
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
  }


}
这是我的docker-compose.yml

   version: "3.1"

services: 
  app1:
    stdin_open: true
    build: app1/app1
    networks:
      - local-network
    environment:
      - NODE_ENV=production
      - PORT=5000
      
  app2:
    stdin_open: true
    build: app2/app2
    networks:
      - local-network
    environment:
      - NODE_ENV=production
      - PORT=5000

  micro-frontend-nginx:
    container_name: micro-frontend-nginx
    build: nginx
    volumes:
      - ./assets:/var/www
    ports:
      - "8080:80"
      - "443:443"
    networks:
      - local-network
    depends_on:
      - app1
      - app2

networks:
  local-network:
这些是我指定任何端口的文件。你能告诉我为什么不能正确重定向应用程序吗

更新:

错误日志:

2020/10/30 12:40:30[错误]7#7:*1 SSL(SSL: 错误:140770FC:SSL例程:SSL23\u GET\u SERVER\u HELLO:unknown protocol) SSL握手到上游时,客户端:192.168.160.1,服务器: 192.168.178.94,请求:“GET/app2 HTTP/1.1”,上游:https://192.168.160.2:5000/app2,主机:“192.168.178.94”


proxy\u pass
语句中,您指定了http://而不是https://-这可能是问题所在吗?如果要解决这个问题,您可以添加一些日志输出来帮助确定问题所在吗?我这样做了,它也失败了。我还不熟悉反向代理,所以你能告诉我在哪里可以找到日志输出吗?它给了我错误的网关。我添加了错误日志。你考虑过了吗?-它的设置很简单,您不需要担心nginx的配置。