Запускать приложение node.js / express на удаленном сервере для других пользователей? - PullRequest
0 голосов
/ 20 марта 2020

Я никогда не делал ничего подобного, так что прости меня, если это глупый вопрос или он должен быть опубликован где-то еще. У меня есть супер простое приложение Hello World (для тестирования), которое я пытаюсь запустить с удаленного linux (red hat 7.6) сервера, к которому я использую putty, чтобы подключиться, и затем могу получить доступ к этой странице с любого машина (в той же сети). linux сервер - это только интерфейс командной строки, поэтому он не относится к типу виртуальной машины, когда вы go заходите на веб-страницу на сервере и просматриваете страницу.

, когда я запускаю приложение со своего ноутбука и * От 1017 * до localhost:3000 или (my-IP-address):3000, он работает просто отлично, но я не совсем понимаю, как заставить это работать, когда он запускается с совершенно отдельной машины. он работает без ошибок на сервере, поэтому я не думаю, что это что-то с кодом ...

это мой код:

var express = require("express"),
    app = express(),
    mongoose = require("mongoose"),
    bodyParser = require("body-parser"),
    methodOverride = require("method-override"),
    http = require("http");

app.use(bodyParser.urlencoded({ extended: true }));
app.set("view engine", "ejs");

app.get("/", function(req, res) {
    res.send("Hello World!");
  });


  app.listen(3000, "0.0.0.0", function() {
    console.log('Server running');
  });

На сервере я добавил это для брандмауэра (также с чем-то, с чем я раньше не работал)

iptables -I INPUT 1 -p tcp --dport 3000 -j ACCEPT

, но, похоже, он не подключается. Я чувствую, что где-то пропустил какой-то ключевой шаг, но не могу найти в Интернете ничего другого, что до сих пор работало

1 Ответ

0 голосов
/ 20 марта 2020

Попробуйте подключить lnet к порту на этой машине telnet yourIP 3000 и посмотрите, открыт ли этот порт, поэтому, если это не так, вам придется убедиться, что он открыт. В aws вы обычно меняете правила. верить. (Я бы не советовал это вообще, потому что вы сделаете это публично c)

...