2015-02-04 7 views
2

Подобно this, я пытаюсь провести кальмара прокси за Nginx:обратного прокси от Nginx кальмаров

example.com - главный сайт

relay.example.com - кальмаров сервер.

До сих пор, когда я пытаюсь использовать кальмар прокси, он будет жаловаться на доступ к незаконной странице, например, если я пытаюсь получить доступ к 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 ошибку