Сервер Node.js за обратным прокси-сервером nginx не обслуживает файлы с путём получения '*', когда запрос имеет случайный URL-адрес (пример.com/random) - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь заставить мой сервер обслуживать мой index.html для любых случайных параметров URL, используя путь node.js '*', но он обслуживает его только тогда, когда я захожу на сайт без параметров URL (пример.com). Если я захожу на example.com/random, он отправляет обратно «not GET / random»

Однако он работает просто отлично, когда я запускаю его на своей локальной машине. Но когда он работает на моем сервере за обратным прокси-сервером nginx, он не работает.

Большое спасибо за любую помощь, я действительно застрял.

Вот соответствующие частиМои файлы конфигурации по умолчанию для server.js и nginx:

#HTTP - redirect all traffic to HTTPS
server {
        listen 80;
        listen [::]:80 default_server;
        server_name northernreachnh.com;

        return 302 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

        location / {
                    proxy_pass "http://localhost:8080/";
                    proxy_http_version 1.1;
                    proxy_set_header Upgrade $http_upgrade;
                    proxy_set_header Connection 'upgrade';
                    proxy_set_header Host $host;
                    proxy_cache_bypass $http_upgrade;
 }
const express = require('express');
const app = express();
const nodemailer = require('nodemailer');

const port = process.env.PORT || 8080;
const bodyParser = require('body-parser');

app.use(bodyParser.urlencoded({extended: true}));

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

 app.get ('*', (req, res) => {
   res.sendFile(__dirname + '/index.html');
 });

 app.get ('/', (req, res) => {
     res.sendFile(__dirname + '/index.html');
 });

// POST route from contact form
app.post('/contact', (req, res) => {

  // Instantiate the SMTP server
  const smtpTrans = nodemailer.createTransport({
    host: 'xxxxxxx',
    port: xxx,
    auth: {
      user: `xxxxx`,
      pass: `xxxxx`
    }
  });

  // Specify what the email will look like
  const mailOpts = {
    from: 'Your sender info here', // This is ignored by Gmail
    to: `xxxxx`,
    subject: 'New message from contact form',
    text: `${req.body.name} (${req.body.tel}) says: ${req.body.email}`
  };

  // Attempt to send the email
  smtpTrans.sendMail(mailOpts, (error, response) => {
    if (error) {
      res.sendFile(__dirname + '/error.html'); // Show a page indicating failure
    }
    else {
      res.sendFile(__dirname + '/success.html'); // Show a page indicating success
    }
  });
});

app.listen(port, () => {
  console.log("Server listening on Port 8080");
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...