Как я могу передать свои запросы внешнего интерфейса через обратный прокси в nginx? - PullRequest
0 голосов
/ 05 февраля 2020

Я сохраняю данные POST / GET / UPDATE / DELETE в моем MongoDB.

Мой интерфейс будет обслуживаться через NGINX, а через pm2 я запусту Node.js сервер, который установит sh подключение к БД.

server {
  charset utf-8;
  listen 80 default_server;
  server_name _;

  # angular app & front-end files
  location / {
    root /opt/mean-stack/angular-crud-rest-api;
    try_files $uri /index.html;
  }

  # node api reverse proxy
  location /products/ {
    proxy_pass http://localhost:4000/;
  }
} 

Все отлично работает на моей локальной машине, но не на дистрибутиве linux. Исключая внешний интерфейс.

Поэтому, когда я пытаюсь опубликовать данные через форму внешнего интерфейса в браузере, он должен вызвать внутренний интерфейс со следующим uri 'http://localhost: 4000 / продукты / добавить ;» который должен добавить продукт в мою MongoDB.

Консоль разработчика показывает мне следующее сообщение об ошибке:

zone-evergreen.js:2952 POST http://localhost:4000/products/add net::ERR_CONNECTION_REFUSED
core.js:6014 ERROR 
 HttpErrorResponse {headers: HttpHeaders, status: 0, statusText: "Unknown Error", url: 
 "http://localhost:4000/products/add", ok: false, …}
  headers: HttpHeaders {normalizedNames: Map(0), lazyUpdate: null, headers: Map(0)}
  status: 0
  statusText: "Unknown Error"
  url: "http://localhost:4000/products/add"
  ok: false
  name: "HttpErrorResponse"
  message: "Http failure response for http://localhost:4000/products/add: 0 Unknown Error"
  error: ProgressEvent {isTrusted: true, lengthComputable: false, loaded: 0, total: 0, type: "error", …}
  __proto__: HttpResponseBase
...