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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Node.js

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

VPS

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

Q&A

3回答

14939閲覧

nodejsの公開方法

atemu

総合スコア94

Node.js

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

VPS

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

0グッド

2クリップ

投稿2017/02/27 14:38

nodejsでアプリを作って、さくらVPSに公開します。

(ホスト):1337

みたいな感じで公開は出来たのですが、これを実際に

(ホスト)/(フォルダ名) ←ポート番号は普通に80

みたいな感じで公開するにはどのようにすればいいのでしょうか…?
ちなみに、まだドメイン名などは割り当てていない状態です。
初歩的な質問かと思いますが、調べてもよく分からなかったので(VirtualHostとか使う??とかそのくらいしかわかりません…)よろしくお願いします。

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

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

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

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

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

guest

回答3

0

簡単な解決策

あなたが node.js で書いたコードの中でポート番号指定を 80 番にするのが一番簡単なやり方です。
ですが 1024 番以下のポートを使うには管理者権限が必要です。 sudo コマンドを使って node アプリを起動すればとりあえず動くのですが、セキュリティ上よろしくありません。
仕事ではなく個人的な用途としてWebサービスを公開したいだけであれば、このやり方で大丈夫です。

本質的な解決策

実際に世界中でプロダクトとして運用されている node.js サーバでは、前段にリバースプロキシとして nginx を置くことがほとんどです。Ruby on Rails 等でも同様の手法が取られます。
node.js サーバは 8000 番ポートで起動しておき、nginx は 80 番ポートで動くように設定します。ユーザーからくる HTTP リクエストはまず nginx で受け、nginx は node.js サーバにHTTPリクエストを渡すだけの役割として使います。
サーバは分ける必要がなく、同一のインスタンスに nginx と node.js アプリを起動して構いません。
nginx はアクセスログを出力してくれますし、GZIP圧縮や、サーバのレスポンスタイムもログ出力可能で本番環境で運用するのに重宝されているミドルウェアです。

パスについて

(ホスト)/(フォルダ名) という記述がありましたが、これはフォルダではなくパスですね。
Webアプリケーションにおいては『ルーティング』という機能です。
node.js であれば Express というフレームワークを使ってルーティングを実装するのが一般的です。
http://expressjs.com/ja/guide/routing.html

余談

ググると 1337 番ポートを使った例が見つかりましたが意味不明なので止めたほうがいいです。 node.js 公式ドキュメントでは 8000 番ポートを使ってますね。
https://nodejs.org/api/http.html

投稿2017/03/01 03:14

編集2017/03/01 03:20
jnst

総合スコア38

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

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

atemu

2017/03/05 02:07

ありがとうございます!(ホスト)/(フォルダ名)というのは、nodeのプログラムフォルダを何個もそのサーバーにおいて、勝手にそのURLで反映されるようにならないかなあと思ってました。VirtualHostの指定などする以外に何か方法があったらいいなあっていう感じでした。 1337はsailsjsのデフォルトのポート番号です。特にこだわりはないのですぐ変えますね、ありがとうございます!
guest

0

指定するport番号を変更してください。
フレームワーク等わかりませんが
Listen(1337)のようなところをListen(80)に変更する必要があります。

投稿2017/02/28 06:05

mosapride

総合スコア1480

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

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

0

僕も昔PHPだけを書いていてNode.jsに入った時に同じような詰まり方を気がします。

昔書いた記事で内容が古いかつ間違ってるものもあるかもしれませんが、こちらが参考になるかもしれません。

さくらVPSでnode.jsをインストール&nginxのリバースプロキシでポート80で動かすまでメモ

投稿2017/02/27 14:54

n0bisuke

総合スコア273

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問