Re: nginx как обычный прокси

Евгений 'Rush' Непомнящий rush.zlo на gmail.com
Вс Мар 6 00:15:16 MSK 2011


5 марта 2011 г. 16:18 пользователь Igor Sysoev <igor на sysoev.ru> написал:
>        proxy_pass http://127.0.0.1:2080$request_uri;

О великий и могучий, тогда nginx будет отправлять (и отправляет) в
сторону прокси вот такой запрос:

GET /clients/phys/bc/work/cardlist/1.lan HTTP/1.0

А нам надо

GET http://bc.isbb/clients/phys/bc/work/cardlist/1.lan HTTP/1.0

Ибо Inter-Pro это не что иное как прокси, правда хитрозадый - на
сервере банка он авторизуется через ГОСТ + хитро подписывает
отправленные формы. Ну да в контексте темы это не важно. Огромное
спасибо за попытку помочь!


5 марта 2011 г. 17:22 пользователь Alex Vorona <voron на amhost.net> написал:
> У меня похоже сработало
> rewrite ^ $tmp$uri break;

А вот это и действительно решение! Алекс, спасибо огромное! Итак,
новый рабочий конфиг:

server {
    listen               443 default;
    server_name          bc.mydomain;
    keepalive_timeout    70;

    ssl                  on;
    ssl_protocols        SSLv3 TLSv1;
    ssl_ciphers          AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5;
    ssl_certificate      ssl/bc.mydomain.pem;
    ssl_certificate_key  ssl/bc.mydomain.key;
    ssl_client_certificate ssl/bc.mydomain-ca.pem;
    ssl_session_cache    shared:SSL:10m;
    ssl_session_timeout  10m;

    ssl_verify_client    on;

    if ($ssl_client_serial != MYSERIAL) {
        return   403;
    }

    location / {
        charset cp1251;

        sub_filter_once off;
        sub_filter "http://bc.isbb/" "https://bc.mydomain/";

        set $bchost "http://bc.isbb";
        rewrite ^ $bchost$uri break;

        proxy_set_header Host bc.isbb;
        proxy_pass http://127.0.0.1:2080; # Inter-PRO proxy port
    }
}

Если интересно - далее планируется завернуть initscript (в общих чертах):

$ mkdir /tmp/$USER
$ export $DISPLAY=:7
$ Xvfb $DISPLAY -screen 0 640x480x24 -fbdir /tmp/$USER
$ WINEPREFIX="$HOME/.wine-bc" wine C:/InterPRO/intpro.exe

Ну а чтобы проконтролировать, что всё хоккей, можно продолжить:

$ x11vnc -display $DISPLAY -bg -nopw -listen 127.0.0.1 -xkb

В другой сессии (или вернув $DISPLAY) можно будет соединиться с
виртуальными иксами любым VNC - клиентом:
$ vinagre 127.0.0.1

Впрочем я сильно ушёл в оффтопик, но возможно кому то пригодится. Ещё
раз спасибо Алексу Вороне и Игорю Сысоеву (в алфавитном порядке) !!!

-- 
Cogitum ergo sum


Подробная информация о списке рассылки nginx-ru