Назад | Перейти на главную страницу

Может ли Nginx запускать как Flask, так и Webpack Dev Server?

Мне сложно понять, как запустить как Flask Backend, так и Webpack Dev Server Frontend в моей среде разработки.

В настоящее время я использую Flask на порту 10003 и Webpack Dev Server на порту 10001.

Конфигурации Nginx:

upstream devapp_upstream {
  server localhost:10001;
}

upstream devapp_secondary_upstream {
  server localhost:10003;
}

server {
  listen 127.0.0.1:80;
  listen 10.1.243.103:80;
  server_name ~api.(\w+).devbox.com ~api.(\w+).devbox.com ~api-(\w+).devbox.com ~api-(\w+).devbox.com;

  location / {
    proxy_pass http://devapp_api_upstream;
    include /etc/nginx/conf.d/proxy.conf;
    set $upstream_name devapp_api_upstream;
  }
}

server {
  listen 127.0.0.1:443 ssl http2;
  listen 10.1.243.103:443 ssl http2;
  server_name ~api.(\w+).devbox.com ~api.(\w+).devbox.com ~api-(\w+).devbox.com ~api-(\w+).devbox.com;

  ssl_certificate /etc/ssl/certs/star.devbox.com.crt;
  ssl_certificate_key /etc/ssl/private/star.devbox.com.key;
  ssl_prefer_server_ciphers on;
  ssl_session_cache shared:SSL:10m;
  http2_max_field_size 32k;

  location / {
    proxy_pass http://devapp_api_upstream;
    proxy_set_header X-Forwarded-Protocol ssl;
    include /etc/nginx/conf.d/proxy.conf;
    set $upstream_name devapp_api_upstream;
  }
}

server {
  listen 127.0.0.1:80;
  listen 10.1.243.103:80;
  server_name ~^(?!api|node).*.devbox.com ~m.(\w).devbox.com ~m-(\w).devbox.com ~^(?!api|node).*.devbox.com ~m.(\w).devbox.com ~m-(\w).devbox.com;
  access_log /var/log/nginx/devbox.com/access.log;
  error_log /var/log/nginx/devbox.com/error.log;

  location / {
    proxy_pass http://devapp_upstream;
    include /etc/nginx/conf.d/proxy.conf;
    set $upstream_name devapp_upstream;
  }
}

server {
  listen 127.0.0.1:443 ssl http2;
  listen 10.1.243.103:443 ssl http2;

  server_name ~^(?!api).*.devbox.com ~m.(\w).devbox.com ~m-(\w).devbox.com ~^(?!api).*.devbox.com ~m.(\w).devbox.com ~m-(\w).devbox.com;

  ssl_certificate /etc/ssl/certs/star.devbox.com.crt;
  ssl_certificate_key /etc/ssl/private/star.devbox.com.key;
  ssl_prefer_server_ciphers on;
  ssl_session_cache shared:SSL:10m;
  http2_max_field_size 32k;

  # Allows nginx to proxy errors thrown by python upstream over to node upstream
  proxy_intercept_errors on;
  recursive_error_pages on;


  location / {
    proxy_pass http://devapp_upstream;
    proxy_set_header X-Forwarded-Protocol ssl;

    # This will indicate whether a request came from Python or Node
    add_header devbox-Generated-By $hostname always;

    include /etc/nginx/conf.d/proxy.conf;
    set $upstream_name devapp_upstream;
    proxy_next_upstream http_502;
    error_page 502 = @fullRequest;
  }
  location @fullRequest {
    proxy_pass http://devapp_secondary_upstream;
    proxy_set_header X-Forwarded-Protocol ssl;
    include /etc/nginx/conf.d/proxy.conf;
    set $upstream_name devapp_secondary_upstream;
  }
}

Я ничего не знаю о nginx, просто пытаюсь использовать то, что там есть, чтобы это работало. Моя страница загружается без проблем, но сокет пытается подключиться по этому URL:

https://me.devbox.com:80/sockjs-node/info?t=1583823754945 но не получается, если я удалю :80 работает нормально. Я подумал: 80 должен был всегда переводиться на me.devbox.com поэтому я не понимаю, почему это не работает.

Во-вторых, я тоже не могу найти приложение Flask. у меня есть /graphql конечная точка, и я не могу добраться до нее как есть. Прямо сейчас я могу получить доступ к Webpack Dev Server или Flask, но не к обоим сразу. Я думал, что nginx сможет мне в этом помочь?