2015-01-13 1 views
0

HTTP 사이트를 사용하는 WP 사이트에서 Varnish와 Nginx를 사용하려고합니다.Varnish + Nginx (HTTPS)를 사용할 때 리디렉션 루프

캐시 된 파일은 모두 정상적으로 작동하지만 바니시는 캐시해서는 안되는 것을 발견하면 다시 Nginx로 전송합니다. 이 시점에서 Nginx는 HTTPS 요청을 다시 보내어 무한 루프를 발생시킵니다.

저는 많은 것을 시도하고 인터넷을 많이 검색했지만 지금까지 아무 것도 작동하지 않았습니다.

if (req.url ~ "/wp-(login|admin|cron)") { 
     # Don't cache, pass to backend 
     return (pass); 
} 

을 그리고 이것은 433 다루는 Nginx에 위치 블록 :

뭔가 니스의 예를 다시 보내는

location/{ 
    # Send request to varnish 
    proxy_pass http://127.0.0.1:8888; 
    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 X-Forwarded-Port 443; 
    proxy_set_header Host $host; 
} 

나는 광택이 return(pass)로 전송하고 있음을 추측 데이터를 다시 Nginx로 가져 왔지만, 이제 다른 위치 블록을 사용하여 데이터를 렌더링하는 방법은 없습니다.

Nginx에서 Varnish의 요청을 받고이를 일반 433 포트에서 오는 요청과 구분할 수 있습니까?

미리 감사드립니다.

답변

1

문제점을 찾았습니다 : HHVM. 다음

backend no_hhvm { 
    .host = "127.0.0.1"; 
    .port = "9433"; 
} 

그리고 ...

# Either the admin pages or the login 
if (req.url ~ "/wp-(login|admin|cron)") { 
     # Don't cache, pass to backend 
     set req.backend = no_hhvm; 
     return (pass); 
} 

페이지가 캐시되지 않도록 :

이 나는 ​​니스에서 다음 (포트 9433)의 Nginx에 HHVM하지 않고 다른 백엔드를 작성했다 HHVM을 사용하지 않는 포트 9433으로갑니다.

대단한 일을 시작했습니다.

1

이것은 hhvm이 포트 443 (https)을 통해 요청을 기다리고 있기 때문에 https로 리디렉션되어 다시 바니시로 끝납니다. 추가