К содержимому

OpenAI API reverse proxy и base url: шлюз или обычный прокси

Прежде чем строить шлюз для OpenAI API, проверьте, не хватит ли обычного прокси. Здесь — сравнение и то, чего стоит каждый вариант.

Два подхода, которые путают

Обычный (прямой) прокси: SDK получает URL прокси и по-прежнему подключается к api.openai.com, а соединение идёт туннелем через прокси. Вы меняете HTTP-клиент, а не адрес. В нашем руководстве по прокси для OpenAI API есть настройки для Python и Node.

Обратный прокси, или шлюз: вы запускаете сервер по своему адресу, например https://llm-gw.example.com/v1. SDK получает этот адрес как base_url (в README Python SDK упомянута и переменная окружения OPENAI_BASE_URL), а шлюз передаёт каждый запрос в OpenAI.

Что нужно вам?

Что нужно вам?
ПунктОбычный проксиШлюз с base_url
Чего вы хотитеСтабильный известный исходящий IP для серверных вызововОдно место для ключей, журналов, лимитов или нескольких сервисов
Что меняется в клиентеВ HTTP-клиент добавляется настройка проксиbase_url указывает на ваш сервер
Откуда вызов приходит в OpenAIС IP выхода проксиС IP сервера-шлюза
Что нужно эксплуатироватьНичего, кроме аккаунта проксиСервер с TLS, обновлениями и мониторингом
Что проходит насквозьЗашифрованный трафик к api.openai.comВаш API-ключ и все промпты — в открытом виде на шлюзе

Наше сравнение по README SDK OpenAI и документации nginx, прочитано 15 ноября 2026. Выбирайте по своей задаче, а не по тому, что звучит солиднее.

Что не меняется

OpenAI сообщает, что использование сервисов в странах и на территориях вне списка поддерживаемых может привести к блокировке или приостановке аккаунта, а API отвечает 403 «Country, region, or territory not supported», когда видит вызов оттуда. Шлюз — не способ это обойти: машина, которая фактически обращается к OpenAI, должна быть в поддерживаемой стране, как и вы сами.

Никогда не отправляйте API-ключ на шлюз, которым вы не управляете и которому не доверяете. Тот, кто его держит, видит ключ и каждый промпт и ответ. Сайты с «бесплатным прокси для ChatGPT API» — как раз такой случай.

Как действовать

  1. Шаг 1: определите, какая у вас задача

    Если нужно лишь «серверу нужен постоянный исходящий IP», берите обычный прокси и на этом остановитесь. Если «нужны единые ключи и журналы», продолжайте.

  2. Шаг 2: для обычного прокси

    Закажите IP в стране, которую поддерживает OpenAI, задайте его в HTTP-клиенте (код ниже и руководство по прокси для OpenAI API) и сначала проверьте через curl.

  3. Шаг 3: для шлюза

    Запустите шлюз на сервере в поддерживаемой стране за TLS. Настройте его для потоковой выдачи: без буферизации ответа и с таймаутом чтения больше вашей самой долгой паузы.

  4. Шаг 4: направьте клиентов на него

    Задайте base_url (в Node — baseURL) с адресом шлюза, включая /v1. Настоящий ключ OpenAI по возможности держите на шлюзе, а сервисам выдайте их собственные ключи шлюза.

  5. Шаг 5: проверьте поток и ошибки

    Вызовите модель с включённым stream и убедитесь, что фрагменты приходят по мере генерации. Посмотрите, что возвращают неверный ключ и несуществующий путь.

Минимальный шлюз на nginx

# Your own gateway, in a country OpenAI supports (nginx)
server {
    listen 443 ssl;
    server_name llm-gw.example.com;
    # ssl_certificate and ssl_certificate_key go here

    location /v1/ {
        proxy_pass https://api.openai.com;   # no URI part: /v1/... is passed on unchanged
        proxy_ssl_server_name on;            # send the server name (SNI) to the HTTPS target server
        proxy_buffering off;                 # pass streamed chunks on as they arrive
        proxy_read_timeout 300s;             # default is 60s between two reads
    }
}

Только пример. Директивы взяты из документации модуля proxy nginx; перед использованием добавьте сертификаты, контроль доступа и журналы.

Python: шлюз и обычный прокси

from openai import OpenAI, DefaultHttpx2Client

# A) Gateway: the client talks to YOUR URL; the gateway talks to api.openai.com
gateway = OpenAI(base_url="https://llm-gw.example.com/v1")   # or set OPENAI_BASE_URL

# B) Plain proxy: the client still talks to api.openai.com, through a proxy
plain = OpenAI(http_client=DefaultHttpx2Client(proxy="http://USERNAME:PASSWORD@HOST:PORT"))

Только пример. Подставьте свой адрес и данные прокси.

Node: шлюз и обычный прокси

// npm install openai undici
import OpenAI from 'openai';
import { fetch, ProxyAgent } from 'undici';

// A) Gateway
const gateway = new OpenAI({ baseURL: 'https://llm-gw.example.com/v1' });

// B) Plain proxy
const dispatcher = new ProxyAgent('http://USERNAME:PASSWORD@HOST:PORT');
const plain = new OpenAI({ fetch, fetchOptions: { dispatcher } });

Только пример. fetch из undici нужно использовать в паре с его ProxyAgent, как описано в документации SDK.

Симптомы и решения

403 Country, region, or territory not supported

Проверьте OpenAI видит вызов из неподдерживаемой страны. При шлюзе это IP сервера-шлюза, при прокси — IP выхода прокси.

Решение Проверьте выход через https://ipinfo.io/json с той же машины и перенесите шлюз либо выберите выход в поддерживаемой стране.

Когда остановиться Не повторяйте попытки с того же адреса.

401 Incorrect API key

Проверьте Ключ потерян или подменён по дороге: шлюз не передаёт заголовок Authorization либо перепутаны два ключа.

Решение Посмотрите, что шлюз отправляет в OpenAI, и сравните с прямым вызовом через curl.

Когда остановиться Отзовите ключ, если он проходил через шлюз, которому вы не доверяете.

404 на всех маршрутах

Проверьте В base_url нет /v1 либо шлюз иначе сопоставляет путь.

Решение Вызовите шлюз через curl по /v1/models и сравните с api.openai.com.

Когда остановиться Сначала исправьте сопоставление путей, потом тестируйте из кода.

Поток приходит одним куском или обрывается примерно через минуту

Проверьте Шлюз буферизует ответ либо его таймаут чтения короче вашей самой долгой паузы. nginx по умолчанию буферизует и ждёт 60 секунд между чтениями.

Решение Выключите буферизацию и увеличьте таймаут чтения на шлюзе.

Когда остановиться Если при прямом соединении то же самое, причина в другом.

Proxy302 для случая с обычным прокси

Для серверных вызовов, которым нужен стабильный исходящий IP, дата-центровый IP Proxy302 — более лёгкий вариант: HTTP или SOCKS5 выбирается для каждого IP при покупке, данные выдаются в «Мои активы» в виде хоста, порта, логина и пароля. Дата-центровый IP стоит $0,25 за день и $3,99 за 30 дней, одинаково во всех странах; список стран ограничен и виден на странице заказа. Автопродление необязательное, его можно выключить в «Мои активы». Бесплатного пробного периода нет, минимальная покупка — один IP на один день.

Прокси не меняет условия OpenAI. Пользуйтесь API из поддерживаемой страны и не отдавайте ключи сторонним шлюзам.

Частые вопросы

Что такое обратный прокси для OpenAI API?

Ваш собственный сервер, который принимает запросы по вашему адресу и пересылает их на api.openai.com. Клиенты используют его через base_url.

Нужен ли обратный прокси, чтобы использовать прокси с OpenAI API?

Нет. Обычный прокси задаётся в HTTP-клиенте, а клиент по-прежнему обращается к api.openai.com.

Можно ли запускать шлюз в любой стране?

Нет. Вызов приходит в OpenAI с IP шлюза, OpenAI отвечает 403 для неподдерживаемых стран и может блокировать аккаунты, использующие сервисы оттуда.

Безопасно ли пользоваться публичным сайтом «прокси для ChatGPT»?

Не отправляйте ключ на шлюз, который вы не контролируете: его владелец видит ключ и все ваши промпты.

Почему поток застревает за nginx?

nginx по умолчанию буферизует ответы и ждёт 60 секунд между чтениями. Выключите буферизацию и увеличьте proxy_read_timeout для location с потоком.

Ссылки и источники

6
  1. Данные о продуктах и цены Proxy302

    Наблюдение за продуктом · Проверено:

    Файл фактов о продуктах сайта (значения сверены с консолью, бэкендом и прайсом 18-19 октября 2026): цены в долларах (1 PTC = $1), сроки аренды, протоколы и порты, бесплатного пробного периода нет.

  2. README openai-python (GitHub)

    Официальная документация · Проверено:

    Прочитано 15 ноября 2026: клиент принимает base_url, в README упомянута переменная окружения OPENAI_BASE_URL; HTTP-клиент можно заменить, например DefaultHttpx2Client(proxy="http://...").

  3. README openai-node (GitHub)

    Официальная документация · Проверено:

    Прочитано 15 ноября 2026: у клиента есть параметр baseURL; прокси задаётся через fetchOptions, в Node — dispatcher из ProxyAgent библиотеки undici, в паре с соответствующей реализацией fetch.

  4. Документация nginx: ngx_http_proxy_module

    Официальная документация · Проверено:

    Прочитано 15 ноября 2026: proxy_pass задаёт протокол и адрес проксируемого сервера (http или https); proxy_buffering по умолчанию включён, при выключении ответ передаётся клиенту по мере получения; proxy_read_timeout по умолчанию 60s между двумя последовательными чтениями; proxy_ssl_server_name (по умолчанию off) передаёт имя сервера через SNI на целевой HTTPS-сервер.

  5. OpenAI API: коды ошибок

    Официальная документация · Проверено:

    Прочитано 15 ноября 2026: 403 «Country, region, or territory not supported» означает обращение к API из неподдерживаемой страны, региона или территории; 401 — неверный или неправильный API-ключ.

  6. OpenAI API: поддерживаемые страны и территории

    Официальная документация · Проверено:

    Прочитано 15 ноября 2026: использование сервисов в странах и на территориях вне списка поддерживаемых может привести к блокировке или приостановке аккаунта.

Готовы попробовать?

Создайте аккаунт, пополните баланс и выберите ротируемый резидентный, статический ISP или дата-центр IP — настроить его в браузере можно за несколько минут.