LINUX.ORG.RU
ФорумAdmin

nginx proxy_pass через прокси

 ,


1

1

Здравствуйте, мне нужно сделать реверс прокси через прокси. Проблема в том, что прокси сервер понимает только если ему передать полный url, например

 GET http://w.backend/ HTTP/1.1
Есть ли модуль для работы через http proxy? Прокси сервер и всё что за ним, это чёрный ящик.


GET http://w.backend/ HTTP/1.1

не совсем

GET / HTTP/1.1
HOST: w.backend

соответственно, для http достаточно будет устанавливать заголовок host, например

proxy_set_header    Host    $host:$server_port;
#proxy_set_header   Host    $host;
router ★★★★★
()
Ответ на: комментарий от router

смотри тут 2 случая доказывающие обратное. юзкейс почти один и тот же но в 1 случае туда надо прикрутить авторизацию Тут дома, надо сделать доступ flibusta.i2p. Также ставим nginx с таким конфигурационным файлом


server_name flibusta.dom;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;

                proxy_set_header Host flibusta.i2p:80;
    #proxy_set_header X-Real-IP $remote_addr;

    proxy_pass http://127.0.0.1:4444;
}

теперь открываем тест curl

curl -vv http://flibusta.dom
* Rebuilt URL to: http://flibusta.dom/
* Hostname was NOT found in DNS cache
*   Trying 172.17.0.2...
* Connected to flibusta.dom (172.17.0.2) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.39.0
> Host: flibusta.dom
> Accept: */*
>
< HTTP/1.1 403 Bad Protocol
< Server: nginx/1.6.2 (Ubuntu)
< Date: Mon, 23 Nov 2015 19:51:42 GMT
< Content-Type: text/html; charset=UTF-8
< Transfer-Encoding: chunked
< Connection: keep-alive
< Cache-control: no-cache
< Proxy-Connection: close
<

теперь смотрим что уходит на прокси сервер
GET / HTTP/1.0
Host: flibusta.i2p:80
Connection: close
User-Agent: curl/7.39.0
Accept: */*

если убрать порт, и добавить заголовок Proxy-Connection: Keep-Alive результат тот же. Нашел выход, сделать php скрипт взывающий curl -x, но это дикий костыль

olovo
() автор топика
Ответ на: комментарий от olovo

Кипалайв вообще побоку, порт стопудово лишний (кури рфц). Убери их и покажи ещё раз. И логи с прокси, где виден ответ от флибусты.

leave ★★★★★
()
3 февраля 2016 г.
Ответ на: комментарий от leave

Та же фигня (только я универсальный гейт пытаюсь делать). В логах прокси тупо:

2016/02/03 09:29:06 [error] 22075#0: *12 readv() failed (104: Connection reset by peer) while reading upstream, client: 9x.xxx.xxx.xx4, server: *.i2p.domain.tld, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:4444/", host: "flibusta.i2p.domain.tld"

http_proxy=... wget ... работает исправно. Если подсовывать кривые адреса, то i2p долго думает. А тут отлуп мгновенный.

KRoN73 ★★★★★
()
Последнее исправление: KRoN73 (всего исправлений: 1)
Ответ на: комментарий от KRoN73

i2pd или ji2p смотри как парсит запрос в ji2p не правильно парсит http заголовки,если тебе 1 домен нужен создай туннель и сделай реверс и подмени поле host,у меня такая в ji2p работает, если тебе нужно несколько доменов и лень создать туннели капай в сторону ngx.socket.tcp()

olovo
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.