AWS "Cannot GET /" - PullRequest
       7

AWS "Cannot GET /"

2 голосов
/ 12 марта 2019

Эта ошибка возникает, когда я пытаюсь получить доступ к корневому пути ("/") моего приложения MERN.Хотя доступ к этому пути на локальной машине работает нормально, и я получаю приложение React.Приложение React использует порт 3000, но сервер использует 8080. Я построил свое приложение, используя этот шаблон: https://github.com/crsandeep/simple-react-full-stack/ (просто меняя файлы в каталогах "client", "server" и "public" и меняя пути к клиенту в "webpack".config.js ")

Я также попытался покрыть основной компонент моего приложения маршрутизатором (в" index.js "клиента) следующим образом:

<Router>
  <Route exact path="/" component={MessageBoard} />
</Router>

Но я все еще получаюОшибка.В чем проблема?

UPD: Содержимое server.js:

const express = require("express");
const logger = require("morgan");

const API_PORT = process.env.PORT || 8080;
const app = express();
const router = require('./routers/board');

app.use(logger("dev"));

app.use('/api', router);

app.listen(API_PORT, () => {
  console.log(`LISTENING ON PORT ${API_PORT}`)
});

UPD 1: Содержимое файла "/ etc / nginx / sites-available / default":

server {
  listen 80;
  server_name ec2-18-222-203-253.us-east-2.compute.amazonaws.com www.ec2-18-222-203-253.us-east-2$
  location / {
    proxy_pass http://127.0.0.1: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;
    proxy_redirect off;
  }
}

Ответы [ 2 ]

2 голосов
/ 12 марта 2019

Перед вашим приложением находится сервер NGnix. Этот сервер неправильно настроен, он не может получить доступ к вашему приложению. Проблема в конфигурации NGinx, а не в вашем приложении.

HTTP 404 означает NOT_FOUND. Эта ошибка возвращается NGinx, а не вашим приложением.

$ curl -v http://ec2-18-222-203-253.us-east-2.compute.amazonaws.com/
*   Trying 18.222.203.253...
* TCP_NODELAY set
* Connected to ec2-18-222-203-253.us-east-2.compute.amazonaws.com (18.222.203.253) port 80 (#0)
> GET / HTTP/1.1
> Host: ec2-18-222-203-253.us-east-2.compute.amazonaws.com
> User-Agent: curl/7.58.0
> Accept: */*
>
< HTTP/1.1 404 Not Found
< Server: nginx/1.10.3 (Ubuntu)
< Date: Tue, 12 Mar 2019 10:21:21 GMT
< Content-Type: text/html; charset=utf-8
< Content-Length: 139
< Connection: keep-alive
< X-Powered-By: Express
< Content-Security-Policy: default-src 'self'
< X-Content-Type-Options: nosniff
<
<!DOCTYPE html>



Error


Cannot GET /
* Соединение № 0 с хостом ec2-18-222-203-253.us-east-2.compute.amazonaws.com оставлено без изменений
1 голос
/ 12 марта 2019

Похоже, что ваше приложение не слушает путь '/' ...

Единственный путь, который вы слушаете - это / api и используется маршрутизатор.

ЕслиВы хотели бы получить '/', попробуйте прослушать '/'

app.get('/',(req,res)=>{
    //do something
});

или, как я заметил в вашем повторении, есть app.use(express.static('dist'));, возможно, вам следует проверить путь к "dist"если ваше приложение реакции или что-то находится в папке 'dist'.

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