«Получен HTTP-код 400 от прокси-сервера после ПОДКЛЮЧЕНИЯ», попытка поставить mitmproxy за nginx
У меня есть mitmproxy, работающий на порту 2011. Я могу использовать его сам по себе, с помощьюcurl -x http://127.0.0.1:2011 google.com
. Однако теперь я хочу разместить его за nginx под доменным именем.proxy.history.test
. Однако, делаяcurl -x http://proxy.history.test:80 google.com -L -v
терпит неудачу с
* Received HTTP code 400 from proxy after CONNECT
* CONNECT phase completed!
* Closing connection 1
curl: (56) Received HTTP code 400 from proxy after CONNECT
Мойnginx.conf
:
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
pid /dev/null;
daemon off;
events {
worker_connections 1024;
}
http {
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
map $http_host $service_port {
hostnames;
default '';
proxy.history.* 2011;
}
proxy_temp_path ./tmp;
access_log /dev/null;
ssl_certificate ./cert.pem;
ssl_certificate_key ./key.pem;
#proxy_set_header Host localhost;
client_body_temp_path ./tmp;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
client_max_body_size 50m;
server {
listen 127.0.0.1:443 ssl;
server_name *.test;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:$service_port;
}
}
server {
listen 127.0.0.1:80;
server_name *.test;
return 302 https://$http_host$request_uri;
}
}
(нужно указать:80
в команде curl, потому что в противном случае он попытается подключиться к порту1080
, почему-то).
1 ответ
является обратным прокси-сервером, а не прямым прокси-сервером, и не поддерживаетHTTP
метод. Вам нужно будет найти стороннююnginx
модуль для поддержкиCONNECT
.