У меня есть mitmproxy, работающий на порту 2011. Я могу использовать его сам по себе, с curl -x http://127.0.0.1:2011 google.com
. Однако я теперь хочу поставить его за nginx под доменным именем прокси.история.тест
. Однако делать curl -x http://proxy.history.test:80 google.com -L -v
терпит неудачу с
* Получен HTTP-код 400 от прокси после CONNECT
* Фаза ПОДКЛЮЧЕНИЯ завершена!
* Закрытие соединения 1
curl: (56) Получен HTTP-код 400 от прокси после CONNECT
Мой nginx.conf
:
рабочие_процессы 1;
#error_log журналы/error.log;
#error_log журналы/уведомление об ошибках.log;
#error_log журналы/информация error.log;
идентификатор /dev/ноль;
демон выключен;
События {
worker_connections 1024;
}
http {
карта $http_upgrade $connection_upgrade {
обновление по умолчанию;
'' близко;
}
карта $http_host $service_port {
имена хостов;
По умолчанию '';
прокси.история.* 2011;
}
proxy_temp_path ./tmp;
журнал_доступа /dev/null;
ssl_certificate ./cert.pem;
ssl_certificate_key ./key.pem;
#proxy_set_header Хост localhost;
client_body_temp_path ./tmp;
proxy_set_header Обновить $http_upgrade;
proxy_set_header Соединение $connection_upgrade;
client_max_body_size 50м;
сервер {
слушать 127.0.0.1:443 ssl;
имя_сервера *.test;
место расположения / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Хост $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:$service_port;
}
}
сервер {
слушать 127.0.0.1:80;
имя_сервера *.test;
вернуть 302 https://$http_host$request_uri;
}
}
(Я должен указать :80
в команде curl, иначе он попытается подключиться к порту 1080
, почему-то).