Usare Watcher con un Proxy

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

Informazioni su come inviare i risultati all'axe Developer Hub tramite un web proxy

Not for use with personal data

I proxy HTTP permettono a un'organizzazione di controllare i dati che attraversano la rete. Di solito vengono configurati utilizzando variabili di ambiente. Questo documento spiega come configurare il supporto proxy in Watcher (versione 4.0.0 o successiva).

Requisiti

Per utilizzare il supporto proxy, è necessario avere software proxy attivo localmente o sui server della propria organizzazione. Per utilizzare il proxy, è necessario l'endpoint HTTPS e il suo certificato (per autorizzarlo sulla propria macchina).

important

When using the Deque-hosted servers, HTTPS is the only protocol supported. When self-hosting, you can use HTTP, and you will also need the proxy's HTTP endpoint. It dovrebbe be the same domain and port as HTTPS (443), but verify to be certain.

Configurazione

La configurazione dei proxy per Watcher avviene interamente attraverso variabili di ambiente. Queste sono suddivise in due gruppi.

Le variabili di ambiente proxy "standard":

  • HTTPS_PROXY - L'endpoint utilizzato per il protocollo HTTPS per comunicare
  • HTTP_PROXY - L'endpoint utilizzato per il protocollo HTTP per comunicare
  • NO_PROXY - Un elenco separato da virgole di nomi host che non devono passare attraverso alcun proxy

Le variabili di ambiente di axe Watcher e Node.js:

  • AXE_WATCHER_USE_ENV_PROXY - Destina solo Watcher per modificare il supporto proxy
  • AXE_USE_ENV_PROXY - Destina qualsiasi cosa dell'axe che supporta anche questa variabile per utilizzare un proxy
  • NODE_USE_ENV_PROXY - Metodo nativo di Node.js (dalla versione 24 o successiva) per far utilizzare a tutte le richieste di rete un proxy
  • NODE_EXTRA_CA_CERTS - Variabile nativa di Node.js per fornire certificati CA fidati per connessioni HTTPS

Quando una qualsiasi delle variabili AXE_* è impostata su 1, l'uso del proxy è abilitato. NODE_USE_ENV_PROXY è stato introdotto nella versione 24 di Node.js per abilitarlo globalmente per il processo, ed è stato retrocompatibile su Watcher per supportarlo su tutte le versioni.

Per abilitare il proxy per Node.js ma disabilitarlo per Watcher, una delle variabili AXE_* può essere impostata su 0.

important

Sono riconosciuti solo 1 e 0. Qualsiasi valore al di fuori di questi comporterà la disattivazione del supporto proxy.

Per HTTPS, il certificato dell'autorità di certificazione fornito dal proxy dovrebbe essere specificato con NODE_EXTRA_CA_CERTS, in modo che non venga rifiutata la connessione come non autorizzata. Questo valore è un percorso al file del certificato.

Esempi di utilizzo

Ci sono due modi principali per impostare le variabili di ambiente:

  1. Impostarle per la macchina o il lavoro CI che esegue il processo. Questo le rende disponibili globalmente per tutta la durata della macchina o del lavoro.
  2. Fornirle prima di un comando nel terminale in modo che esistano solo per la durata di quel processo.

Ecco un esempio di impostazione delle variabili di ambiente proxy in un file di workflow di 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

Ecco un esempio di utilizzo delle variabili di ambiente proxy localmente per eseguire un singolo comando:

AXE_WATCHER_USE_ENV_PROXY=1 HTTPS_PROXY=https://localhost:9090 NODE_EXTRA_CA_CERTS=~/path/to/ca.pem npm run test

Proxy condizionale nella versione 24 di Node.js o successive

Nella versione 24 (o successiva) di Node.js, NODE_USE_ENV_PROXY è abilitato per impostazione predefinita per tutte le richieste, quindi si potrebbe voler disabilitare condizionalmente il proxy per Watcher in scenari di test.

Questo può essere raggiunto utilizzando NO_PROXY per istruire il sistema a consentire al dominio di bypassare il proxy. Il seguente esempio permette di utilizzare il proxy per tutte le richieste iniziate da Node.js ma di non utilizzarlo per quelle che si indirizzano a axe.deque.com o example.com:

NODE_USE_ENV_PROXY=1 HTTPS_PROXY=https://our.intranet/proxy NO_PROXY=axe.deque.com,example.com npm run test

La ragione per utilizzare NO_PROXY è che anche se si tenta di disabilitare l'uso del proxy di axe Watcher, esso eredita il dispatcher di richieste globale, il che significa che se NODE_USE_ENV_PROXY è abilitato, continuerebbe a prendere il sopravvento e utilizzare il proxy.