2016-04-27 18 views
0

gcloud computeVMに手作業でputtyして実行すると、うまく動作するノードアプリケーションがあります。ここでgcloudのdeploy.shファイルを使わずにnode.jsアプリケーション用にポート80を開くには?

は(UNIXへのすべてのrealted)合併症である:

1)私は、ドメイン名を持っています。そこで、上記のVMを指すようにdnsゾーンレコードを追加しました。

2)計算VMが応答するために、我々はhttps://cloud.google.com/nodejs/getting-started/run-on-compute-engine#download_appに従えば、それは上でアプリケーションを実行するように指定する80

3)上で待機プロセスがあるはず8080

4)ポート< 1024の場合、ポートを開くにはroot権限が必要です。私のアプリインスタンスsupervisord:nodeappはsudo:なし

5.)だから、NPM開始から、私はそれが次のエラーを与えた)

6.「を起動sudoのNPM」を使用するには、起動スクリプトを変更しましたttyが存在し、askpassプログラムが指定されていない

7.)「sudo visudo」を毎回実行し、展開後にインスタンスを再起動するたびに「username ALL = NOPASSWD:」を追加する必要があります。今上記の計算VMへの私のGoogleドメインポイント:

# Install app dependencies 
cd /myrepo/opt/app/servers 
sudo npm install 

# Create a nodeapp user. The application will run as this user. 
useradd -m -d /home/nodeapp nodeapp 
chown -R nodeapp:nodeapp /myrepo/opt/app/servers 

# Configure supervisor to run the node app. 
cat >/etc/supervisor/conf.d/node-app.conf << EOF 
[program:nodeapp] 
directory=/myrepo/opt/app/servers 
command=sudo npm start 
autostart=true 
autorestart=true 
user=nodeapp 
environment=HOME="/home/nodeapp",USER="nodeapp",NODE_ENV="production" 
stdout_logfile=syslog 
stderr_logfile=syslog 
EOF 

A.)私の要件は単純です:

私は、関連する詳細はstratupスクリプトの一部が含まれています。ユーザーがwww.domainname.comを入力するたびに、URLにポート番号のないウェブサイトに移動する必要があります。起動スクリプトを簡単に変更してポート80を開く方法(推奨)?

B.)また、チュートリアルで指定したdeploy.shを使用する必要がある場合は、自動的に実行されますか?あるいは、私がそれを自動的に実行しなければならない場合、その手順は何ですか?

注:私はUNIXの専門家ではありません。どんな助けもありがとう。

答えて

2

reverse proxyをご覧ください。これにより、8080などのポートでroot権限を持たずにアプリケーションを実行したり、ApacheやNginxなどの特権HTTPサーバーをポート80で実行したり、アプリケーションにトラフィックをプロキシすることができます。これは一般的な習慣であり、root権限でアプリを実行するよりはるかに安全です。

+0

私はnginxを有効にしました。私はconfファイルをアップロードすることができます。だから私の前のコメントを削除する!リバースプロキシをチェックしようとしています。 –

+0

nginxリバースプロキシが動作しました。 :)...他のサーバー上で8080にルーティングされたドメイン名:)。しかし、それはnginxが支払われるように見えます。今私は無料試用中です。そして、私は彼らがクラウド上で "nginx plus"だけを許可すると思う。 –

+0

プレミアムな「nginx」がありますが、LinuxのGoogle Compute Engine VMで無料のオープンソース版をセットアップできるはずです。たとえば、[このチュートリアル](https://cloud.google.com/solutions/https-load-balancing-nginx)を参照してください(ここでは正確には行いませんが、 Nginxの無料版)。 –

関連する問題