**已关闭。**此问题为not about programming or software development。当前不接受答案。
此问题似乎与a specific programming problem, a software algorithm, or software tools primarily used by programmers无关。如果您认为此问题与another Stack Exchange site的主题有关,您可以留下评论,说明在何处可以回答此问题。
4小时前关门了。
Improve this question
我想做一个可以在HTTPS上工作的代理。有一个HTTP服务器,用户可以下载一些文件。地址可以是“https://repo.example.com:8084/product/test.tar.gz”或“http://repo.example.com:8080/product/test.tar.gz”。
我的目标是使代理,当用户输入“https://file.repository.com/test.tar.gz,文件将被下载从“https://repo.example.com:8084/product/test.tar.gz”或“http://repo.example.com:8080/product/test.tar.gz”。
我的工作环境就像下面一样。
有一个HTTP服务器,Nginx,PC(Linux)的客户端。
在客户端PC上,/etc/environment位于下面
http_proxy=http://172.21.1.95:80/
https_proxy=http://172.21.1.95:443/
Nginx在www.example.com上运行172.21.1.95,Nginx配置如下。
http {
server {
listen *:80;
server_name file.repository.com;
proxy_connect;
proxy_connect_allow 443 563;
proxy_connect_connect_timeout 10s;
location / {
# Use IPv4 upstream address instead of DNS name to avoid attempts by nginx to use IPv6 DNS lookup
proxy_pass http://repo.example.com:8084/product/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 443 ssl;
server_name file.repository.com;
ssl_certificate /etc/nginx/example.cert;
ssl_certificate_key /etc/nginx/example.key;
ssl_session_cache shared:SSL:1m;
proxy_connect;
proxy_connect_allow 443 563;
proxy_connect_connect_timeout 10s;
location / {
proxy_pass http://repo.example.com:8084/product/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto "https";
}
}
}
Web服务器在www.example.com上运行repo.example.com,并具有http(8080)和https(8084)
现在HTTP运行得很好,但HTTPS不行。
当用户输入“wget http://file.repository.com/test.tar.gz"”时,文件从http://repo.example.com:8080/product/test.tar.gz下载,但当用户输入“wget https://file.repository.com/test.tar.gz"”时,他收到消息“Connecting to 172.21.1.95:443... connected. Proxy tunneling failed:错误请求无法建立SSL连接。"。
我不明白这个问题。请帮助我,我们的团队不要解雇我。
1条答案
按热度按时间at0kjp5o1#
您的代理需要身份验证。您需要使用wget的--proxy-user和--proxy-password参数来提供身份验证凭据。
您也可以尝试此链接https://www.cyberciti.biz/faq/wget-example-download-from-https-web-sites/
如果错误仍然存在,请检查代理服务器和端口