Nginx Обратный прокси к приложению NodeJS внутри подкаталога не может найти мой. js файл (выброс 404) - PullRequest
0 голосов
/ 23 февраля 2020

Я довольно новичок в NGINX, я использую его для обслуживания страницы c и приложения NodeJS с использованием обратного прокси-сервера.

Идея служила:

Вот мой конфигурационный файл nxginx:

server {
  listen   443;

  ssl on;
  ssl_certificate /etc/ssl/bundle.crt;
  ssl_certificate_key /etc/ssl/_.my-web.com_private_key.key;

  server_name my-web.com;
  access_log /var/log/nginx/my-web.com.access.log;
  error_log /var/log/nginx/my-web.com.error.log debug;

  location / {
    root /var/www/my-web.com/html;
  }

  location /app/ {
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_http_version 1.1;

    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
    proxy_set_header X-NginX-Proxy true;

    proxy_pass http://localhost:3000/;
  }
}

server {
  listen 80;
  server_name www.my-web.com my-web.com;
  return 301 https://$host$request_uri;
}

У меня есть все файлы со страницы stati c в /var/www/my-web.com/html и NodeJS в /var/www/my-web.com/app/dist.

Конечно, у меня также есть приложение, работающее на http://localhost: 3000 , вот сервер. js содержимое файла:

const path = require('path');
const express = require('express');

const app = express();
const http = require('http').createServer(app);
const io = require('socket.io')(http);

var events = require('./connections/connection-events');

const DIST_DIR = path.normalize(__dirname + './../../dist');
const HTML_FILE = path.join(DIST_DIR, 'index.html');

app.use(express.static('dist'));

app.get('/', function(req, res){
  res.sendFile(HTML_FILE);
});

const PORT = process.env.PORT || 3000;

io.on('connection', events);

http.listen(PORT, () => {
  console.log(`App listening to ${PORT}....`);
  console.log('Press Ctrl+C to quit.');
});

Когда я go на http://my-web.com показывает правильную страницу c, но когда я хочу получить доступ к приложению на http://my-web.com/app, я получаю индекс. html, но он не может найти мой пакет. js файл:

404 error

Однако, если я go прямо на http://my-web.com/app/bundle.js, я действительно могу увидеть содержимое файла , Я думаю, что мне нужен действительный nginx файл конфигурации для обслуживания других файлов, кроме индекса. js из запроса каталога ...

Заранее спасибо кому-нибудь, кто может помочь!

...