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 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: よくある質問
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ワークフローに組み込めます。環境変数またはノード単位の設定、スティッキーセッション、アイテムごとのジオターゲティングに対応し、クラウドおよびセルフホスト環境で動作します。