我有一個nginx服務器運行。我想向公司代理髮出一些請求並將結果返回給客戶端。nginx如何proxy_pass到代理
假設客戶端向http://ip:port/redirect/google.com
發出請求,則服務器應該向請求的url發送請求https://username:[email protected]_proxy
作爲參數。
我發現,接近我的問題的問題:
http://serverfault.com/questions/732063/nginx-proxy-pass-reverse-proxying-behind-corporate-firewall
和
http://stackoverflow.com/questions/11865119/how-to-configure-nginx-behind-a-corporate-proxy
承擔205.100.100.100:80是代理URI和 XXVzYTQzMjXXXDpCb25qXXyMQ==
憑證爲代理
一說我們應該重寫網址,然後將其傳遞給proxy_pass指令
location ^~ /redirect/ {
rewrite ^/redirect/(.*) https://google.com;
proxy_pass_header on;
proxy_set_header Proxy-Authorization "XXVzYTQzMjXXXDpCb25qXXyMQ==";
proxy_pass https://205.100.100.100:80;
}
我認爲它不工作打算的原因它顯示爲一個重定向(HTTP代碼301)
另外一個說,我們應該使用主機頭,並用它指定原始地址:
location ^~ /redirect/ {
proxy_pass_header on;
proxy_set_header Host "https://google.com";
proxy_set_header Proxy-Authorization "XXVzYTQzMXXXpCb25XXyMQ==";
proxy_pass https://205.100.100.100:80;
}
不起作用。他們還說,代理讀取指定爲URL參數的URL如下所示:http://proxy:port/url_requested
so:
location /redirect {
rewrite ^/redirect/(.*)"http://205.100.100.100:80/https://google.com" break;
proxy_pass_header on;
proxy_set_header Proxy-Authorization "XXVzYTQzMXXXpCb25XXyMQ==";
proxy_pass http://corporate-proxy.mycorp.com:8080;
}
應該工作嗎?
正如你所看到的,我不知道如何指定代理的用戶名,密碼。我試着Proxy-Authorization
標題"XXVzYTQzMjXXXDpCb25qXXyMQ=="
沒有結果。
我也嘗試了http_upstream模塊,沒有結果。我不能使用proxy_pass http://user:[email protected]:80
,因爲nginx使用「:」解析端口,它給了我錯誤指定端口。
我該如何繼續?
也許它來自整個配置或他們使用代理的方式?不知道。
謝謝,所以沒有辦法通過請求的URL的頭?在郵件中他們談到了一個「noredirect」選項,我找不到補丁? –