統合

Shifterと一緒に使用する n8n

Shifterのレジデンシャル・ISP プロキシをn8nワークフローに組み込む方法は2通りあります。すべての HTTP ノードに一括適用する環境レベルの設定と、ワークフローごとの制御が必要な場合に HTTP Request ノードでインラインで設定する方法です。

クイックスタート

インストール

docker run -p 5678:5678 -e HTTP_PROXY=... n8nio/n8n

基本的な使い方

# Easiest path: set HTTP_PROXY / HTTPS_PROXY when launching n8n
docker run -d --name n8n -p 5678:5678 \
  -e HTTP_PROXY="customer-USERNAME-country-us-sid-123ABC:PASSWORD@p.shifter.io:443" \
  -e HTTPS_PROXY="customer-USERNAME-country-us-sid-123ABC:PASSWORD@p.shifter.io:443" \
  -e NO_PROXY="localhost,127.0.0.1" \
  n8nio/n8n

# Every HTTP Request node will now route through Shifter automatically.

機能

HTTP_PROXY / HTTPS_PROXY環境変数で一度設定すれば、すべてのHTTP RequestノードがShifterを自動的に使用します
複数ステップで異なる国/セッションが必要なワークフロー向けに、HTTP Requestノードでノードごとのプロキシを上書き設定
Function ノードはワークフロー開始時に新しい sid を生成でき、実行全体にわたって安定したスティッキーセッションを実現します
195+ か国での Geo ターゲティング -- 式を使用して国 / 都市 / ASN セレクターを渡す
n8n Cloud、セルフホストのDocker、Kubernetes Helmチャート、およびデスクトップアプリで動作します。
HTTPルート経由で呼び出すものはすべてShifterを経由するn8nノードエコシステム全体と互換性あり

HTTP Requestノード(UI)によるノードごとのプロキシ

ワークフローごとの制御(ノードごとに異なる国、スパイダーごとのスティッキーセッション)が必要な場合は、HTTP Requestノードでプロキシを直接設定してください。環境変数は不要です。

# In the HTTP Request node:
#   1. Switch to "Generic Authentication"
#   2. Authentication: "Generic Credential Type"
#   3. Credential type: "HTTP Header Auth"
#   4. Then in the node body, add:
#
#      Send Headers: ON
#      Header Parameters:
#         Proxy-Authorization: Basic <base64(USER:PASS)>
#
#   5. Set Request Options > Proxy:
#      http://p.shifter.io:443

# Or, simpler — set "Send Body / Send Headers / Use Proxy" toggles
# and configure Proxy directly:
{
  "parameters": {
    "url": "https://example.com",
    "options": {
      "proxy": "customer-USERNAME-country-uk-sid-456DEF:PASSWORD@p.shifter.io:443",
      "timeout": 30000,
      "redirect": { "followRedirects": true }
    }
  },
  "name": "Scrape UK products",
  "type": "n8n-nodes-base.httpRequest"
}

Functionノードを使ったワークフローごとのスティッキーセッション

ワークフロー開始時に一意の sid を生成し、下流のすべての HTTP ノードに渡します。その実行内のすべてのフェッチが 1 つのレジデンシャル IP を共有するため、マルチステップのスクレイピングに最適です。

// Function node — outputs a Shifter URL with a fresh sid + ttl
const sid = Math.random().toString(36).slice(2, 10);
const country = $json.country || "us";

return [
  {
    json: {
      shifterProxy:
        `customer-USERNAME-country-${country}-sid-${sid}-ttl-300:` +
        `PASSWORD@p.shifter.io:443`,
      country,
      sid,
    },
  },
];

// Then in each downstream HTTP Request node, set:
//   Proxy: ={{ $json.shifterProxy }}
//
// Every node in the run reuses the same residential IP.

Geo 固有のブランチ(スイッチ + 複数国)

Switchノードを使用して異なるアイテムを異なるブランチにルーティングし、各ブランチのHTTP Requestノードを異なる国に設定します。ローカライズされた価格モニタリングやSERPチェックに最適です。

// Workflow shape:
//
//   Schedule Trigger
//        |
//   Set: list of regions
//        |
//   Split In Batches (per region)
//        |
//   Switch (item.region == "us" / "uk" / "jp" / ...)
//        |--- HTTP Request (proxy: country-us  sid-us-001)
//        |--- HTTP Request (proxy: country-uk  sid-uk-001)
//        |--- HTTP Request (proxy: country-jp  sid-jp-001)
//        |--- HTTP Request (proxy: country-de  sid-de-001)
//        |
//   Merge -> HTML Extract -> Postgres Insert

// Or, parameterize the proxy on a single HTTP Request node:
{
  "url": "https://example.com/{{$json.path}}",
  "options": {
    "proxy": "=customer-USERNAME-country-{{$json.region}}-sid-{{$json.region}}-{{$workflow.id}}:PASSWORD@p.shifter.io:443"
  }
}

Docker Composeによるセルフホスト

本番環境対応のセットアップ。Shifter の環境変数を n8n コンテナに注入し、ワークフローを Postgres に永続化し、すべての HTTP Request ノードがノードごとの設定なしに Shifter を使用できるようにします。

# docker-compose.yml
version: "3.8"

services:
  n8n:
    image: n8nio/n8n:latest
    restart: unless-stopped
    ports:
      - "5678:5678"
    environment:
      # Shifter proxy for every outbound HTTP Request node
      HTTP_PROXY:  "customer-USERNAME-country-us-sid-prod:PASSWORD@p.shifter.io:443"
      HTTPS_PROXY: "customer-USERNAME-country-us-sid-prod:PASSWORD@p.shifter.io:443"
      NO_PROXY:    "localhost,127.0.0.1,postgres"

      DB_TYPE:                  postgresdb
      DB_POSTGRESDB_HOST:       postgres
      DB_POSTGRESDB_DATABASE:   n8n
      DB_POSTGRESDB_USER:       n8n
      DB_POSTGRESDB_PASSWORD:   n8n_password
      N8N_BASIC_AUTH_ACTIVE:    "true"
      N8N_BASIC_AUTH_USER:      admin
      N8N_BASIC_AUTH_PASSWORD:  changeme
    volumes:
      - n8n_data:/home/node/.n8n
    depends_on:
      - postgres

  postgres:
    image: postgres:15
    restart: unless-stopped
    environment:
      POSTGRES_DB: n8n
      POSTGRES_USER: n8n
      POSTGRES_PASSWORD: n8n_password
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  n8n_data:
  postgres_data:
FAQ

よくある質問

Shifter と n8n の併用に関するよくある質問。

最もシンプルな方法は、n8nプロセス(またはコンテナ)にHTTP_PROXYおよびHTTPS_PROXYの環境変数を設定することです。HTTP Requestノード、およびアウトバウンド呼び出しを行うほとんどのノードは、これらの環境変数を自動的に読み取ります。ワークフローごとの制御が必要な場合は、HTTP RequestノードのOptionsでプロキシを直接設定してください。

はい。各HTTP RequestノードにはOptions > Proxyフィールドがあります。そこにShifter URLを貼り付けると、グローバルな環境変数に関わらず、そのノードはShifter経由でルーティングされます。アイテムごとにパラメータ化するには、式構文(`={{$json.proxy}}`)と組み合わせてください。

はい。n8n CloudではHTTP_PROXY環境変数を設定できませんが、HTTPリクエストノードでのノードごとのプロキシ設定はセルフホスト版とまったく同じように動作します。Shifterが必要な各ノードのproxyフィールドを設定してください。

ワークフローの先頭にFunctionノードを追加し、一意のsid(例:`Math.random().toString(36).slice(2, 10)`)を生成して、そのsidを埋め込んだShifter URLを生成します。そのURLをすべての下流のHTTP RequestノードでExpressionを使って参照すれば、同じレジデンシャルIPを共有できます。

はい。Switchノードを使用してregionフィールドで分岐するか、HTTP RequestノードのプロキシURL内で`={{$json.country}}`のような式を使用してください。各アイテムを異なるShifterの国 / 都市 / ASNを通じてルーティングできます。

カスタムノードは不要です。ShifterはHTTP / SOCKS5プロキシとして標準に対応しており、n8n組み込みのHTTP RequestノードとプロキシenvVarsがそのまま使えます。これによりワークフローはn8n Cloud、セルフホスト、組み込み環境を問わずポータブルに保たれます。

始める

でShifterを使い始める n8n

Shifterの2億500万以上のレジデンシャル・ISP プロキシをn8nワークフローに組み込めます。環境変数またはノード単位の設定、スティッキーセッション、アイテムごとのジオターゲティングに対応し、クラウドおよびセルフホスト環境で動作します。

Shifterを無料で試す数分でセットアップ完了。いつでもキャンセル可能。