Подпуть в URL возвращает внутреннюю ошибку сервера с сервером nginx и express, использующим реагирующий маршрутизатор - PullRequest
1 голос
/ 19 апреля 2020

Итак, в основном у меня есть сервер express, работающий через порт 4000, на который Nginx перенаправляется с proxy_pass. Когда я получаю доступ к root моего домена в браузере (https://www.buildingblockscms.tech/), все работает нормально. Но когда я обновляю sh любые под-маршруты, по которым я перешел или пытаюсь получить к ним прямой доступ (https://www.buildingblockscms.tech/dashboard), я получаю внутреннюю ошибку сервера.

Запущено приложение реагирования на моем express сервере абсолютно нормально работает с response-router-dom, когда он запускается локально, но что-то не так с моей Nginx config.

Я пытался решить эту проблему весь день, любая помощь ОТЛИЧНО приветствуется.

Это файл, доступный для моих сайтов / по умолчанию в Nginx.

server {
        root /var/www/index.html;
        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;

        server_name buildingblockscms.tech www.buildingblockscms.tech;

        location / {
                proxy_pass http://localhost:4000/; #whatever port your app runs$
                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;
                proxy_set_header   X-Forwarded-Host $server_name;
                proxy_redirect     off;
    }

И это файл моего сервера, работающий на порте 4000:

const express = require('express');
const mongoose = require('mongoose');
const graphqlHTTP = require('express-graphql');
const auth = require('./middleware/auth');

const app = express();
const fileUpload = require('express-fileupload');

app.use(express.json());

// enable files upload
// app.use(
//   fileUpload({
//     createParentPath: true
//   })
// );

// DB Config
const db = process.env.mongoURI || require('./config/keys').mongoURI;

// Connect to Mongo
mongoose
  .connect(db, { useUnifiedTopology: true, useNewUrlParser: true })
  .then(() => console.log('MongoDB connected...'))
  .catch((err) => console.log(err));

// Use Routes
app.use('/api/content-types', require('./routes/api/content-types'));
app.use('/api/sites', require('./routes/api/sites'));
app.use('/api/users', require('./routes/api/users'));
app.use('/api/pages', require('./routes/api/pages'));
app.use('/api/auth', require('./routes/api/auth'));

// GraphQL Route
app.use(
  '/graphiql',
  auth,
  graphqlHTTP({
    schema: require('./routes/client-graphql/schema'),
    graphiql: true,
  })
);

// Serve static assets if in production
if (process.env.NODE_ENV === 'production') {
  // Set static folder
  app.use(express.static('client/build'));

  app.get('*', (req, res) => {
    res.sendFile(path.resolve(__dirname, 'client', 'build', 'index.html'));
  });
}

const port = process.env.PORT || 4000;
app.listen(port, () => console.log(`Server started on port ${port}`));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...