2014-06-24 145 views
-1

我使用SSL設置nginx服務器。Nginx重定向http https不工作

與SSL域名dev.cooknconnect.com 我想重定向所有請求:http://domain.comhttps://domain.com 我目前有以下服務器模塊的設置:

server { 
     listen  1.2.3.4:80 default; 
     server_name domain.com; 
     server_tokens off; 
     rewrite  ^https://$server_name$request_uri? permanent; 
     } 
server { 
      listen 443 ssl; 
      server_name domain.com www.domain.com; 
      keepalive_timeout 70; 
      server_tokens off; 
      ssl on; 
      ssl_certificate /etc/ssl/certs/certificate.crt; 
      ssl_certificate_key /etc/ssl/private/certificate.key; 
      ssl_session_timeout 5m; 
      ssl_protocols SSLv3 TLSv1; 
      ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP; 
      ssl_prefer_server_ciphers on; 

      location/{ 
        proxy_pass http://domain.com; 
      } 

     } 

目前這是不行的,但我不明白爲什麼不能。任何人都可以在我的配置中找到任何錯誤。如果不是,請提出一些方法來跟蹤或調試相同的。

+0

爲什麼它是'listen IP:80'而不是'listen 80'? –

+0

最初我試着用「聽80」。但那次nginx沒有重啓。 – user3518256

+0

nginx報告什麼錯誤? –

回答

0

您可以使用此,它應該工作正常

server { 
    listen 80; 
    server_name domain.com; 
    server_tokens off; 
    return 301 https://$http_host$request_uri; 
} 

記住,https://dev.yourdomain.com是行不通的,因爲你的證書才下達根域,對開發子域HTTPS將顯示黃色證書警告。

0

也能正常工作對我來說:

server{ 
    listen 80; 
    server_name *.example.com; 
    rewrite^https://$host$request_uri? permanent; 
} 

這將永久重寫HTTP到HTTPS域本身和子域到https模式。