httptunnel через nginx

Марсель Ялалов marbledore на mail.ru
Чт Апр 15 13:04:08 MSD 2010


Добрый день!

Пытаюсь наладить ssh-подключение через httptunnel, который стоит за nginx.
Если коннектиться без nginx сразу на порт httptunnel, то всё работает отлично, клиент передаёт запрос POST, а первый ответный пакет сервера примерно такой:

HOST: ****.dyndns.org:8888
Content-Length: 102400
Connection: close

Если же включить nginx и подключаться к нему, то tcpdump говорит, что запрос идёт GET, а ответ такой:

HTTP/1.1 200 OK
Content-Length: 102400

(ну и вообще данные другие)
Клиент не продолжает передачу данных и висит.
Часть конфига nginx:

server {
	listen 80;
	server_name ****.dyndns.org;

	location / {
		proxy_pass http://127.0.0.1:8888;
	}
}

Не сработала. Потом я попытался убрать keep_alive и разный буфферинг, так как думал, что причина в отсутствии Connectino close:

server {
	listen 80;
	server_name ****.dyndns.org;

	keepalive_requests 0;
	keepalive_timeout 0;
	server_tokens off;

	location / {
		proxy_pass http://127.0.0.1:8888;
		proxy_intercept_errors on;
		proxy_cache off;
		proxy_buffering off;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_redirect off;
		add_header Connection close ;
	}
}

Тоже не помогает.
Как изменить GET на POST, я пока не придумал.

Прошу подсказок!




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