2011-06-13 13 views
13

Yapılandırılmamış Nginx'i, Oynatım'ın önünde ters proxy olarak yanlıştır! ve aşağıdaki başlıklarıyla https geçen ayarlayın: -(https) Nginx -> (http) Oyna !. Ancak request.secure false

 proxy_set_header X-Forwarded-Proto https; 
     proxy_set_header X-Forwarded-Ssl https; 

login() [https://localhost/login] Play iletilmekte olduğunu! 9000 numaralı bağlantı noktasında 'http' olarak. Ancak login.secure request() hala 'false'. Herhangi bir fikir ? GÜNCELLEME

: Burada sunucu conf geçerli: -

server { 
    listen    443; 
    server_name   localhost; 

    ssl     on; 
    ssl_certificate  /home/aymer/play/key/localhost.crt; 
    ssl_certificate_key /home/aymer/play/key/localhost.key; 
    ssl_session_timeout 5m; 

    location ~ ^/(images|javascript|js|css|flash|media|static)/ { 
      root /home/aymer/play/playapp/public; 
      expires 30d; 
    } 

    location ~* (login|register)$ { 
      proxy_pass   http://localhost:9000; 
      proxy_redirect  off; 

      proxy_set_header Host    $host; 
      proxy_set_header X-Real-IP   $remote_addr; 
      proxy_set_header X-Forwarded-Proto https; 
      proxy_set_header X-Forwarded-Ssl on; 
     } 

    location/{ 
     rewrite ^/(.*) http://$host/$1 permanent; 
    } 
} 
+0

Lütfen "server {}" yapılandırma işlemini tamamlayın. –

cevap

7

ikinci giriş yanlıştır, bu olmalıdır: olmadan:

GÜNCELLEME sorunu çözecek

proxy_set_header X-Forwarded-Ssl on; 

Test edemem, eksik gördüğüm tek şey bu başlık:

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 

Ayrıca, her şey doğru görünüyor.

+0

Teşekkürler, ama hala hayır şans. –

+3

play.mvc.Http.Request sınıfına bir parça kazın. XFF üstbilgisini ayarlamaya ek olarak, application.conf dosyasında XForwardedSupport = eklemek zorunda kaldım. Örneğin: benim durumumda, XForwardedSupport = 127.0.0.1. Şuan çalışıyor. –

+0

Not: Play 2.5, üstbilgileri göz ardı eder ve yalnızca request.uri'nin "request.secure" değerini ayarlamak için "https" ile başlayıp başlamadığını kontrol eder –

1

Ben çözüm değiştirmek olacağını tahmin:

"proxy_redirect  http://localhost https://localhost;" 

"localhost"

içine server_name için değeridir.

3

Sadece işleri netleştirmek için. Bu konuda koştum ve tam çalışma çözümüne sahip olmak için biraz zor zaman geçirdim.

o iş yapmak için, nginx yapılandırma şart içerir: (bu kullanım şeklini)

proxy_set_header X-Forwarded-Proto https; 

faydasız

proxy_set_header X-Forwarded-Ssl on; 
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 

parametresi.

ANCAK ayrıca bu senin dosyasına koyarak belirtilen olması gerekir:

XForwardedSupport=<proxy server address> # generally, 127.0.0.1 

Bu cevap sadece Pere Villega ve Aymer arasındaki bütün konuşma özetlenmiştir.

İlgili konular