2017-11-26 9 views
-1

これを間違ったカテゴリに投稿してもよろしいですか?ドメインとSSLを使用してAWS上にNode.jsアプリケーションを設定する方法

私は、ユーザーが https://www.my-domain.comに行くとき、彼らは実際にしているように、自分のドメインでHTTPSをセットアップするための最良の方法は何ですかポートでEC2インスタンスに3000

を実行しているのNode.jsアプリを持っています打撃my-ec2-instance.com:3000

私は実際にCloudFrontの上でクライアントを置くことになった、とCloudFrontをので、私はhttps://my-domain.comに行くとき、クライアントがうまく提供していますが、ので、私はEC2インスタンス上で私のサーバーへのHTTP要求を行うことができない自分のドメインでSSLを設定、管理起源は異なる。ブラウザはHTTPリクエストをブロックします。

私はまた、ノードサーバが動作します私のクライアントを提供した試みたが、あなたはここでそれを見ることができます。そして、私はIPアドレスに再ルーティングするRoute53を設定http://34.223.222.234:3020/

、あなたはここでそれを見ることができます: http://myonlinetesting.com:3020/

しかし、Route53では、リルート先のIPの一部としてポート番号を追加することはできません。そして、私はまだSSLを設定する必要があるので、ユーザーはhttps://myonlinetesting.comに行くことができます。また、httpトラフィックをhttpsに再ルーティングする必要があるため、ユーザーは常にhttpsになっています。

あなたの経験から、このようなWebアプリケーションを設定する最も良い方法は何ですか? cloundfrontはクライアントにサービスを提供し、EC2インスタンスでサーバーをホストしていますか?または、途中にロードバランサがあるだけでSSLを実現できますか?あなたが本当にロードバランサを必要としないときに、リソースの浪費のように思えます。または、EC2インスタンスでアプリを実行していて、https://yourdomain.comに行くと、何らかの形でyour-ec2-instace.com:3000にトラフィックをルーティングできますか?

私は実際にこれを行う最良の方法が何であるかを実際に知ることなく、さまざまな方向で頭を引っ張っています。どんなフィードバックも高く評価されます。

答えて

0

ドメイン名を特定のポートに指定することはできません。ドメイン名は、そのサーバー上の特定のポートではなく、サーバー全体を指します。デフォルトのHTTPポートは80で、デフォルトのHTTPSポートは443です。したがって、ユーザが3020のようなポート番号を指定しなくてもあなたのWebサイトにアクセスできるようにするには、デフォルトのHTTP/HTTPSポートで実行するようにWebサイトを設定する必要があります。または、アプリケーションが実際に稼動しているポートにこれらのデフォルトポートを転送するようにオペレーティングシステムを設定します(たとえば、iptables経由)。

SSLの場合、ロードバランサまたはCDNを使用していないため、SSL証明書をサーバーに直接インストールする必要があります。あなたはLet's Encryptを使って無料でこれを行うことができます。

0

・ホープ、このことができます:

<VirtualHost *:80> 
    ServerName yourdomain.com 

    <Location "/"> 
     ProxyPreserveHost On 
     ProxyPass http://localhost:3000/ 
     ProxyPassReverse http://localhost:3000/ 
    </Location> 
</VirtualHost> 

はnodejsアプリがポート3000

上で実行されて考えてみましょう
関連する問題