2016-07-25 19 views
2

AWS CloudFrontの後ろにある解析サーバを実行していますが、私はまだ最良の設定が何であるか把握しようとしています。 GET、HEAD(デフォルトでキャッシュされた) : AWSでホワイトリストに登録する必要があるヘッダParse Server用のCloudFront

  • キャッシュされたHTTPメソッドをDELETE、GET、HEAD、OPTIONS、PUT、POST、PATCH:

    • 可HTTPメソッド:現在、私はにCloudFrontの動作を設定しました
    • フォワードヘッダ:ホワイトリスト
      • 受け入れ言語
      • のContent-Type
      • ホスト
      • Origi N
      • リファラー
    • オブジェクトキャッシュ:カスタマイズ:
      • 最小TTL:0
      • 最大TTL:31536000
      • デフォルトTTL:28800
    • フォワードクッキー:すべて

    (解析REST APIを使用している)私のGETリクエストは、この設定で期待どおりにキャッシュされているようです。パースJS SDKを使用して作られていますすべての要求は、POST経由で呼び出され、ブラウザコンソールで504エラーが発生しているように見える:

    No 'Access-Control-Allow-Origin' header is present on the requested resource. 
    

    これらの要求がまだあるため、例えば、解析サーバによってfullfilledされているいくつかの理由からこのAccess Control Originエラーがあっても、オブジェクトを保存してもMongoDBに保存されます。

  • +0

    問題は、30秒のCLoudFrontのデフォルトのタイムアウトです。私のDB(そしてプロダクションサーバ)は東京にあるので、私のドイツのテストサーバからのリクエストは30秒以上実行され、CloudFrontは504エラーを返します。ですから、私の解決策は、AWSのデフォルトの30秒を変更できないため、CloudFrontを完全に削除することです。 – flavordaaave

    答えて

    0

    これはクラウドフロントではなく、Parse Server側からの修正です。

    このファイル/src/middlewares.jsに以下のコードを追加し、クラウドからその例外を完全には逃しません。

    var allowCrossDomain = function(req, res, next) { 
        res.header('Access-Control-Allow-Origin', '*'); 
        res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS'); 
        res.header('Access-Control-Allow-Headers', 'X-Parse-Master-Key, X-Parse-REST-API-Key, X-Parse-Javascript-Key, X-Parse-Application-Id, X-Parse-Client-Version, X-Parse-Session-Token, X-Requested-With, X-Parse-Revocable-Session, Content-Type'); 
    
    関連する問題