開発中に SOP の問題を回避し、オリジン、プロキシ サービスを組み合わせ、SSL、HTTP2、SSI などを使用します。
インストール |使い方 |構成 |プロジェクト例 |サポート |変更履歴
Proxrox は、ローカルの Nginx インスタンスを起動して静的ファイルを提供し、単一オリジンの下で 1 つまたは複数のサービスをプロキシし、ローカルで SSL を使用し、一般に運用環境と同様の開発環境を取得するコマンド ライン ユーティリティです。
Proxrox は、Nginx を使用してこれを実現します。 proxrox はサーバーの起動を要求されると、一時的な場所に Nginx 構成ファイルを作成し、この構成ファイルを使用して Nginx インスタンスを起動します。これは、proxrox が理論的には Nginx のすべての機能をサポートできることを意味します。
次のプレゼンテーションに示すように、Proxrox を使用して Web アプリをデバッグすることもできます。
TL;DR; npm install -g proxrox
。 Nginx は$PATH
上にあり、スーパーユーザー権限なしで実行可能である必要があります。
詳しいインストール手順は INSTALLATION.md にあります。
ローカル構成ファイルを使用して proxrox を起動します。形式とサポートされるオプションについては、CONFIGURATION.md ファイルで説明されています。
proxrox start .proxrox.yaml
実行中の Nginx インスタンスを停止します (すべて停止します)。
proxrox stop
経験上、構成ファイル ( .proxrox.yaml
など) によるオプションの定義が最も一般的に使用されるオプションであることがわかっています。推奨されるプロジェクト設定を使用した実際のサンプル プロジェクトは、example ディレクトリにあります。
開発環境は実稼働環境に似ている必要があります。これは、サーバー側のインクルード、トランスポート層のセキュリティ、圧縮などが開発中に存在する必要があることを意味します。これはページ速度の最適化にとって重要であるだけでなく、安全でないコンテンツを参照している安全なページなど、セキュリティの問題を早期に発見することもできます。
アプリがサービス指向であっても、マイクロサービスベースであっても、リソース指向のクライアント アーキテクチャであっても、シングル ページ アプリであっても、ローカル開発では同一オリジン ポリシーが問題となることがよくあります。人々はさまざまな方法でこの問題を回避しています。ほとんどのチームは実稼働環境向けに優れたプラクティスを導入していますが、開発環境にはこれが欠けていることがよくあります。私が見たソリューションは、機能フラグを介してアクティブ化されたローカル開発用のクロスオリジン リソース共有から、ブラウザーでの Web セキュリティを完全に無効にするまで多岐にわたります。
多くの人はサーバー側インクルードを知らないか、使用していません。これにはおそらくさまざまな理由が考えられます。私自身気づいたことの 1 つは、プロキシ サーバーを使用して適切な開発環境をセットアップするのに時間がかかるということです。
期待どおりに動作しないことがありますか? Twitter の @BenRipkens までお気軽にご連絡ください。