2010-03-25 3 views
1

Normal http fonctionne bien pour moi avec nginx et mongrel, cependant quand je tente d'utiliser https, je suis dirigé vers la "bienvenue à la page nginx".https ne pas rediriger vers mongrel en amont

http { 
# passenger_root /opt/passenger-2.2.11; 
# passenger_ruby /usr/bin/ruby1.8; 

include  mime.types; 
default_type application/octet-stream; 

#log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 
#     '$status $body_bytes_sent "$http_referer" ' 
#     '"$http_user_agent" "$http_x_forwarded_for"'; 

#access_log logs/access.log main; 

sendfile  on; 
#tcp_nopush  on; 

#keepalive_timeout 0; 
keepalive_timeout 65; 

upstream mongrel { 
    server 00.000.000.000:8000; 
    server 00.000.000.000:8001; 
} 

    server { 
    listen  443; 
    server_name domain.com; 


    ssl     on; 
    ssl_certificate  /etc/ssl/localcerts/domain_combined.crt; 
    ssl_certificate_key /etc/ssl/localcerts/www.domain.com.key; 


    # ssl_session_timeout 5m; 

# ssl_protocols SSLv2 SSLv3 TLSv1; 
# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; 
# ssl_prefer_server_ciphers on; 

    location/{ 
     root /current/public/; 
     index index.html index.htm; 

    proxy_set_header X_FORWARDED_PROTO https; 
     proxy_set_header X-Real-IP  $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header Host    $http_host; 
    proxy_redirect off; 
    proxy_pass  http://mongrel; 

    } 
} 

} 
+0

J'adore répondre à cette question si quelqu'un l'a. –

Répondre

0

Avez-vous une entrée explicite server pour le port 80? Il se peut qu'une directive par défaut nginx intercepte le trafic HTTP normal.

Ajouter un autre bloc de serveur juste pour être sûr:

server { 
    listen 80; 
    server_name domain.com www.domain.com; 

    rewrite ^(.*) https://domain.com$1 permanent; 
} 

Cela va rediriger tout le trafic pour votre application à https, qui même si elle est pas ce que vous voulez finalement arriver, au moins vous savez il vous manque le bloc non-https et vous pouvez ensuite le remplacer par les directives dont vous avez besoin.

Questions connexes