プロキシを使ったWatcherの使用
ウェブプロキシを通じてaxe Developer Hubに結果を送信する方法に関する情報
HTTPプロキシは、ネットワークを通過するデータを監査するために組織が使用します。通常、環境変数を使って設定されます。この文書は、Watcher(バージョン4.0.0以降)でのプロキシサポートのセットアップ方法について詳述しています。
要件
プロキシサポートを使用するには、ローカルまたは組織のサーバー上でプロキシソフトウェアを実行する必要があります。プロキシを使用するには、HTTPSエンドポイントとその証明書が必要です(マシン上で認証するため)。
Dequeがホスティングしているサーバーを使用する場合、HTTPSは唯一サポートされているプロトコルです。セルフホスティングの場合、HTTPを使用することができ、そのためにはプロキシのHTTPエンドポイントも必要です。それは 同じドメインとポート(443)が望ましいですが、確認してください。 である必要がありますが、確実に確認してください。
設定
Watcherのプロキシ設定はすべて環境変数を通じて行われます。これらは2つのグループに分かれています。
「標準」のプロキシ環境変数:
HTTPS_PROXY- HTTPSプロトコルで使用するエンドポイントHTTP_PROXY- HTTPプロトコルで使用するエンドポイントNO_PROXY- プロキシを使用しないホスト名のコンマ区切りリスト
axe WatcherおよびNode.js環境変数:
AXE_WATCHER_USE_ENV_PROXY- Watcherのみをターゲットとしてプロキシサポートを変更AXE_USE_ENV_PROXY- プロキシを利用するためにaxeでサポートされる変数をターゲットNODE_USE_ENV_PROXY- Node.jsのネイティブ(バージョン24以降のみ)で全てのネットワークリクエストをプロキシ使用に設定NODE_EXTRA_CA_CERTS- HTTPS接続のために信頼されたCA証明書を提供するNode.jsのネイティブ変数
これらの AXE_* 変数が 1に設定されていると、プロキシ使用が有効になります。 NODE_USE_ENV_PROXY は、プロセス全体で有効にするためにNode.jsバージョン24で導入され、全バージョンでそれをサポートするためにWatcherにバックポートされました。
Node.jsのプロキシを有効にして、Watcherのプロキシは無効にしたい場合は、次の任意の AXE_* 変数を 0に設定することができます。
および 1 が認識されます。これ以外の値は、プロキシサポートを無効にするデフォルトになります。 0 が認識されており、これら以外の値はプロキシサポートを無効にするデフォルトになります。
HTTPSの場合、プロキシから提供される認証局証明書は NODE_EXTRA_CA_CERTSを指定して、不信として接続が拒否されないようにする必要があります。この値は証明書ファイルへのパスです。
使用例
環境変数を設定する主な方法は2つあります:
- プロセスを実行しているマシンまたはCIジョブのために設定します。これにより、マシンまたはジョブの寿命全体でグローバルに利用可能になります。
- コマンドを実行する前にターミナルで設定することで、そのプロセスの寿命だけ存在します。
GitHub Actionワークフローファイルでプロキシ環境変数を設定する例:
# Setup of the workflow and jobs
- steps:
- name: Run Tests
env:
HTTPS_PROXY: https://localhost:9090
NODE_EXTRA_CA_CERTS: ~/path/to/ca.pem
AXE_WATCHER_USE_ENV_PROXY: 1
run: npm run testローカルで単一のコマンドを実行するためのプロキシ環境変数の使用例はこちらです:
AXE_WATCHER_USE_ENV_PROXY=1 HTTPS_PROXY=https://localhost:9090 NODE_EXTRA_CA_CERTS=~/path/to/ca.pem npm run testNode.jsバージョン24以降の条件付きプロキシ
Node.jsバージョン24(またはそれ以降)では、 NODE_USE_ENV_PROXY がデフォルトで全てのリクエストに対して有効になっているため、テストシナリオでWatcherのプロキシを条件付きで無効にしたいかもしれません。
これは NO_PROXY を使用して、ドメインがプロキシをバイパスするようにシステムを指示することで達成できます。以下の例では、Node.jsが発行する全てのリクエストでプロキシを使用し、しかし axe.deque.com または example.comへのリクエストでは使用しないようにしています。
NODE_USE_ENV_PROXY=1 HTTPS_PROXY=https://our.intranet/proxy NO_PROXY=axe.deque.com,example.com npm run testを使用する理由は、axe Watcherのプロキシ使用を無効にしようとしても、グローバルリクエストディスパッチャを継承しているため、 NO_PROXY が有効になっている場合、それが優先されてプロキシを使用するからです。 NODE_USE_ENV_PROXY の場合もあり得ますが、それでも優先されてプロキシを使用します。
