質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

Q&A

解決済

1回答

468閲覧

Node.js 公開されない(VPS)

Y.NINOMIYA

総合スコア32

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

0グッド

0クリップ

投稿2020/08/03 11:43

編集2020/08/03 11:45

お世話になります。

Node.jsでサーバを立てたのですが、VPSではうまく動作しません。
curlによる動作は確認できています。

ソースコード

/var/www/node/script.js

JavaScript

1var http = require("http"); 2 3var server = http.createServer(); 4server.on("request", function (req, res) { 5 res.writeHead(200, {"Content-type": "text/plain"}); 6 res.write("hello world"); 7 res.end(); 8}); 9server.listen(8080); 10console.log("htdocs server listening...");

/etc/apache2/sites-availabled/000-default.conf

conf

1<VirtualHost *:5000> 2 3ServerName <<-- サーバーネームを指定 -->> 4ProxyRequests Off 5<Location /> 6 ProxyPass http://localhost:8080/ 7 ProxyPassReverse http://localhost:8080/ 8</Location> 9</VirtualHost> 10

以下を追記しました。
/etc/apache2/apache2.conf

conf

1 2DocumentRoot "/var/www/node" 3 4567 8<Directory "/var/www/node"> 9Require all granted 10</Directory> 11

環境

Ubuntu 18.04.4 LTS
Node.js v12.18.1
Apache/2.4.29 (Ubuntu)


curl http://localhost:8080/とするとhello worldが帰ってきます。
ただ外部からhttpの5000番ポートでアクセスしても期待する出力が帰ってきません。

詳しい方、回答よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hentaiman

2020/08/03 12:25

> 詳しい方、回答よろしくお願いいたします。 詳しいかどうかは分からないので回答は控えますが、一応アドバイスとしてはログを確認するのが第一です
guest

回答1

0

ベストアンサー

回答ではないのですが…

curlでの確認はOKとのことですが、nodejs(ポート8080)に直接アクセスしているようなので、
サーバー上で curl http://localhost:5000 が通るか確認してください。

これでダメなら、apacheの設定がマズイです。
OKならば、サーバー側の設定はOKだと思います。

サーバー側の設定がOKであれば、次に怪しいのはファイヤウォールだと思うので、
sudo ufw status でファイヤウォールの許可設定を確認されるとよろしいかと思います。
状態: 非アクティブ (英語で書かれているかも)という応答であれば、

sudo iptables -L も確認してみてください。

投稿2020/08/05 15:23

編集2020/08/05 15:24
YakumoSaki

総合スコア2027

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問