Ошибка AWS Elastic Beanstalk / NodeJS / Nginx: продолжайте получать 502 плохих шлюза - PullRequest
0 голосов
/ 21 октября 2018

Я развернул свое веб-приложение несколько раз, и оно прошло хорошо.

, но со вчерашнего развертывания я продолжаю получать 502 Bad Gateway, всякий раз, когда я пытаюсь получить свой веб-сайт.

Я прервал свое приложение из AWS упругого бобового стебля и пересоздал его, но все еще получаю 502 плохого шлюза.

вот мой nodejs.log:

Error: ENOENT: no such file or directory, open '/var/app/current/config/awsconfig.json'
    at Error (native)
    at Object.fs.openSync (fs.js:642:18)
    at Object.fs.readFileSync (fs.js:510:33)
    at Object.readFileSync (/var/app/current/node_modules/aws-sdk/lib/util.js:97:26)
    at Config.loadFromPath (/var/app/current/node_modules/aws-sdk/lib/config.js:409:39)
    at Object.<anonymous> (/var/app/current/server.js:14:12)
    at Module._compile (module.js:577:32)
    at Object.Module._extensions..js (module.js:586:10)
    at Module.load (module.js:494:32)
    at tryModuleLoad (module.js:453:12)
fs.js:642
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);

, и это часть моего сервера.js, связанный с журналом ошибок nodejs:

const express = require("express");
const path = require("path");
const fs = require("fs");
const template = require("./public/template");
const bodyParser = require("body-parser");
const _ = require("lodash");
const uuidv1 = require("uuid/v1");

const AWS = require("aws-sdk");
const multer = require("multer");
const multerS3 = require("multer-s3");

// Image Upload
AWS.config.loadFromPath(path.join(__dirname, "/config/awsconfig.json"));
const s3 = new AWS.S3();
const upload = multer({
  storage: multerS3({
    s3,
    bucket: "hackingdeal",
    key: (req, file, cb) => {
      cb(null, new Date().valueOf() + path.extname(file.originalname));
    },
    acl: "public-read-write"
  })
});

К вашему сведению, файл "server.js" находится в корневом каталоге ("./ server.js"), а файл awsconfig.json - в "./config"./awsconfig.json"

Я сделал .gitignore, чтобы игнорировать "config / awsconfig.json".Я также создал .ebignore, но у меня не было «config / awsconfig.json», чтобы мой эластичный beanstalk мог найти и прочитать файл «config / awsconfig.json».

Это мой nginx / error.log:

2018/10/20 23:32:05 [error] 8103#0: *96 connect() failed (111: Connection refused) while connecting to upstream, client: 110.12.50.169, server: , request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8081/", host: "hackingdeal-env.4wgwkb9tdv.ap-northeast-2.elasticbeanstalk.com"
2018/10/20 23:32:05 [error] 8103#0: *96 connect() failed (111: Connection refused) while connecting to upstream, client: 110.12.50.169, server: , request: "GET /favicon.ico HTTP/1.1", upstream: "http://127.0.0.1:8081/favicon.ico", host: "hackingdeal-env.4wgwkb9tdv.ap-northeast-2.elasticbeanstalk.com", referrer: "http://hackingdeal-env.4wgwkb9tdv.ap-northeast-2.elasticbeanstalk.com/"
2018/10/20 23:48:00 [error] 12936#0: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 110.12.50.169, server: , request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8081/", host: "hackingdeal.com"
2018/10/20 23:48:01 [error] 12936#0: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 110.12.50.169, server: , request: "GET /favicon.ico HTTP/1.1", upstream: "http://127.0.0.1:8081/favicon.ico", host: "hackingdeal.com", referrer: "http://hackingdeal.com/"

hackingdeal.com - мой сайт.Я подключил этот домен к своему Elastic Beanstalk с помощью службы Route53, создав псевдоним.

Дело в том, что мое приложение успешно работает на localhost.

Мое приложение успешно запускается сразу после того, как я развернул "сервер.js "с инструкциями загрузки изображений (с использованием AWS S3 и multer / multerS3: смотрите верхний блок кода"

Но со вчерашнего дня он возвращает 502 неверных шлюза.

Я полностью потерянЯ не знаю, с чего начать или где найти мою проблему. Пожалуйста, помогите ..

1 Ответ

0 голосов
/ 21 октября 2018

Мне нужно прочитать журналы, чтобы лучше понять вашу проблему, но, похоже, вы пытаетесь загрузить свою конфигурацию из файла /config/awsconfig.json здесь

// Image Upload
AWS.config.loadFromPath(path.join(__dirname, "/config/awsconfig.json"));
const s3 = new AWS.S3();
const upload = multer({
  storage: multerS3({
    s3,
    bucket: "hackingdeal",
    key: (req, file, cb) => {
      cb(null, new Date().valueOf() + path.extname(file.originalname));
    },
    acl: "public-read-write"
  })
});

Итак, вы должны загрузить этоподать в ваш ELB.На самом деле это проблема, вошедшая в систему nodejs.log

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