В соединении отказано. Приложение React запрашивает у приложения Node, работающего на другом порту. - PullRequest
1 голос
/ 20 июня 2020

Я пытался создать приложение стека PERN. Он работает локально, но когда я помещаю его в AWS, вызовы api к бэкэнду Node получают ERRCONNECTIONREFUSED в google chrome. Мое приложение для реагирования находится на порте 5000, а узел - на 8000. У меня они оба работают с pm2. Я создал приложение для реагирования с помощью «npm run build». Я думаю, что это проблема прокси, и я действительно не знаю, как настроить этот файл конфигурации nginx. Любая помощь приветствуется.

REACT

package. json:

"proxy": "http://localhost:8000",

api. js

import axios from "axios";

export default axios.create({
    baseURL: "http://localhost:8000/",
});

NODEJS

const express = require("express");
const app = express();
require("dotenv").config(); // configures dotenv to use .env variables
const bodyParser = require("body-parser");
const morgan = require("morgan");
const cors = require("cors");

const directoryRoutes = require("./routes/directory");

// MIDDLEWARE

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(morgan("tiny"));
app.use(cors({ origin: true, credentials: true }));

// ROUTES

app.use("/directory", directoryRoutes);

// default route (not necessary for API)
app.use("/", (req, res, next) => {
    res.send({ hello: "worlds" });
});

app.listen(8000, () => {
    console.log("listening on port 8000");
});

И сервер настроен с использованием NGINX с этой конфигурацией в / etc / nginx / sites-available / default

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;

    index index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {

        try_files $uri $uri/ =404;
}

}

server {

    root /var/www/html;

    index index.html index.htm index.nginx-debian.html;
    server_name www.***MYSERVERNAME*** ***MYSERVERNAME***; # managed by Certbot


    location / {

        proxy_pass http://localhost:5000;
proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_cache_bypass $http_upgrade;
    }

    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/orgo.systems/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/orgo.systems/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot



}
server {
    if ($host = ***MYSERVERNAME***) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    if ($host = ***MYSERVERNAME***) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80 ;
    listen [::]:80 ;
    server_name ***MYSERVERNAME*** ***MYSERVERNAME***;
    return 404; # managed by Certbot




}

Я также настроил SSL с CertBot и LetsEncrypt.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...