2015-02-04 355 views
2

this類似,我想舉辦背後nginx的魷魚代理:反向代理魷魚

example.com - 主站點

relay.example.com - Squid服務器。

到目前爲止,當我嘗試使用squid代理時,它會抱怨訪問非法頁面,例如,如果我嘗試訪問http://www.google.com,我得到一個無效的URL錯誤,說明URL /http://www.google.com(注意前面的/)。任何人都可以提出爲什麼會發生這種情況,或者修復nginx或者在squid配置中?

upstream @squid { 
    server localhost:3128; 
} 

server { 
    listen 80; 
    server_name relay.example.com; 

    location/{ 
     proxy_pass http://@squid/$scheme://$host$uri; 

     proxy_set_header Host $host; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header X-Forwarded-Proto $scheme; 
     proxy_set_header Request-URI $request_uri; 

     proxy_redirect off; 
    } 
} 

https://imgur.com/qtgrZI9

魷魚日誌給出:

1423083723.857  0 127.0.0.1 NONE/400 3530 GET /http://www.google.com/ - HIER_NONE/- text/html 

而且nginx的相同請求:

12.34.56.78 - - [04/Feb/2015:16:02:03 -0500] "GET http://www.google.com/ HTTP/1.1" 400 3183 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:35.0) Gecko/20100101 Firefox/35.0" "-" 
+0

你解決這個問題,我現在遇到了同樣的問題 –

+0

不,遺憾地仍未解決:( – aptgetmoo

回答

0

我有同樣的問題,通過設置魷魚解決它以透明模式運行,如下所示:

http_port 3128 transparent 
+0

'tranasparent'只用於NAT路由而不是nginx反向代理。 – RobC

0

在nginx的:

proxy_pass http://@squid; 

魷魚:

http_port 3128 vhost 

,這一切你需要爲修復此https://imgur.com/qtgrZI9錯誤