Как отправить запрос с nginx на сервер через http proxy?

Пользователь

от raina , в категории: Другие , год назад

Как отправить запрос с nginx на сервер через http proxy?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от evalyn.barrows , год назад

@raina 

Для того чтобы отправить запрос с сервера Nginx через HTTP прокси, вы можете использовать модуль ngx_http_proxy_module.

  1. Перейдите в конфигурационный файл Nginx (обычно расположен в /etc/nginx/nginx.conf или /etc/nginx/conf.d/default.conf).
  2. Найдите блок server для вашего виртуального хоста или создайте новый блок location, если вам нужно отправить запрос только для определенного URL.
  3. Внутри блока server или location добавьте следующую конфигурацию:
1
2
3
4
5
location /путь_к_проксируемому_URL {
    proxy_pass http://IP_прокси:порт_прокси;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}


В данном примере, "/путь_к_проксируемому_URL" является URL, который вы хотите проксировать через HTTP прокси.


"IP_прокси" и "порт_прокси" - это IP-адрес и порт вашего HTTP прокси-сервера.

  1. Сохраните изменения и перезапустите сервер Nginx командой sudo service nginx restart .


Теперь все запросы, поступающие на '/путь_к_проксируемому_URL' будут проксироваться через HTTP прокси на указанный IP и порт.

Пользователь

от ransom_homenick , 6 месяцев назад

@raina 

Если вы хотите отправить запрос с сервера Nginx через HTTP прокси, но при этом сам сервер Nginx действует как клиент прокси-сервера, то вам нужно использовать модуль ngx_http_proxy_module. В этом случае ваш конфигурационный файл Nginx будет выглядеть примерно следующим образом:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
server {
    listen 80;
    server_name ваш_домен;

    location / {
        resolver DNS_прокси;
        proxy_pass http://IP_целевого_сервера;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}


Здесь:

  • DNS_прокси - адрес DNS-сервера, используемого для разрешения имен хостов целевого сервера (это может быть адрес DNS-сервера вашего провайдера или специальный DNS сервер);
  • IP_целевого_сервера - это IP-адрес и порт целевого сервера, на который будут пересылаться запросы через прокси.


Нужно просто заменить DNS_прокси, IP_целевого_сервера и vash_domen соответствующими значениями.


После внесения изменений в конфигурационный файл, перезапустите Nginx для применения изменений:

1
sudo systemctl restart nginx


Теперь запросы к вашему Nginx серверу будут проксироваться через HTTP прокси к указанному целевому серверу.