2017-08-14 10 views
-3

複数の動的サブドメインをアカウント所有者に使用できるようにしたいと同時に、apiサブドメインも使用したいと考えています。以下のような基本的なもの:nodejsで複数のサブドメインと角型アプリケーションを使用する方法

https://example.com --> Angular 4 public landing page app 
https://api.example.com --> NodeJS api 
https://otbs.example.com --> Angular 4 SaaS application 
https://test-account.example.com --> Angular 4 SaaS application 

SaaSアプリケーションは、ユーザーがログインしている、とにマッピングされたときのために、実際のアプリケーションそのものであるのに対し、公共のランディングページアプリは、公共の対向アプリケーションのためだけの角度4アプリですリンクされたアカウントごとのサブドメイン

NodeJS、Express 4、Angular 4、Angular CLIを使用しています。私の意図は、NodeJS APIをElasticBeanstalkで実行させながら、クライアントAngularアプリケーションを提供するためにS3を使用することです。

この設定は可能ですか?私はAWSで仮想ホスティングを検討しましたが、これは必ずしも私が探しているものではありません。新しいアカウントが作成されるたびに新しいサブドメインを登録する必要があるからです。

+1

アカウント作成時に呼び出されるシェルスクリプトを記述したいと思うかもしれません。 – Kai

+0

[サブドメインを動的に作成する方法](https://stackoverflow.com/questions/5822117/how-to)の可能な複製-dynamically-create-subdomains) –

+0

AWS/Route53に階層型ワイルドカードサブドメイン設定の形式はありませんか? api.domain.comのようなもの - > NodeJS EBS環境; **。domain.com - > Angular SaaS App;サブドメインを持たないものはすべて、パブリックAngular appを指しています。また、これは重複しているとは思えません。これはPHPではなくAWSに固有のもので、.htaccess config +という質問は複数の環境を活用しようとしていません。しかし、 –

答えて

0

これは、route53を介したワイルドカードDNSマッピングを使用してAWS CloudFrontを使用して行っています。このアプローチは* .example.comをCloudFrontディストリビューションにマップし、route53のAPIにオーバーライドレコードセットapi.example.comを使用して、APIがあなたの高速ウェブサーバーをポイントするようにします。手順は次のとおりです。

  • ユーザーがアカウントを作成するときに、割り当てられたサブドメイン(仮想)をバックエンドに格納することもできます。
  • ユーザーがログイン(login.example.com)ページからログインすると、トークンまたはCookieを使用してサブドメインにリダイレクトされます。
  • オプションで、単一のユーザーが複数のサブネットに存在する必要がある場合は、ログイン後に選択するか、ユーザーが内部で切り替えることができるデフォルトのオプションに移動するオプションを提供できます。

ここで、サブドメインは単にマスクにすぎませんが、実際のマッピングはバックエンドから検証します。だからサブドメインにかかわらず、ユーザーがサブドメインに行く場合、Angularアプリはそのワイルドカードからロードされますが、APIリクエストから検証され、関連メッセージはユーザーに表示されます。

APIを同じCloudFrontディストリビューションに接続して、AngularアプリでCORS問題が発生しないようにリダイレクトするような動作(api/*など)もできます。

関連する問題