2017-01-11 2 views
3

У меня есть сайт, работающий на стеке LEMP. Я включил cloudflare с веб-сайта. Я использую гибкий SSL-сертификат cloudflare для https. Когда я открываю веб-сайт в chrome, он показывает, что веб-сайт перенаправлял вас слишком много раз, а в firefox обнаружил, что сервер перенаправляет запрос на этот адрес таким образом, который никогда не будет завершен. Я пытался увидеть ответы на другие вопросы, но ни один из них, похоже, не решил проблему. NGINX conf file: -HTTP to HTTPS Nginx слишком много перенаправлений

server { 
listen 80 default_server; 
listen [::]:80 default_server; 
server_name mydomain.com www.mydomain.com; 
return 301 https://$server_name$request_uri; 
} 
server { 
listen 443 ssl http2 default_server; 
listen [::]:443 ssl http2 default_server; 
root /var/www/html; 

index index.php index.html index.htm index.nginx-debian.html; 

location/{ 
    try_files $uri $uri/ =404; 
} 

location ~ \.php$ { 
    include snippets/fastcgi-php.conf; 
    fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
} 

location ~ /\.ht { 
    deny all; 
} 
} 

Я был бы очень признателен, если кто-нибудь может указать, что я делаю неправильно.

+0

Я предполагаю, что вы используете гибкий вариант SSL Cloudflare для обслуживания HTTPS контента, как вы не защищенный сервер блок в вашей конфигурации Nginx. Взгляните на https://serverfault.com/questions/653976/redirect-loop-using-cloudflares-flexible-ssl/654018#654018 –

ответ

8

Поскольку вы используете CloudFlare гибкий SSL ваш конфигурационный файл Nginx WLL выглядеть следующим образом: -

server { 
    listen 80 default_server; 
    listen [::]:80 default_server; 
    server_name mydomain.com www.mydomain.com; 

    if ($http_x_forwarded_proto = "http") { 
     return 301 https://$server_name$request_uri; 
    } 

    root /var/www/html; 

    index index.php index.html index.htm index.nginx-debian.html; 

    location/{ 
    try_files $uri $uri/ =404; 
    } 

    location ~ \.php$ { 
    include snippets/fastcgi-php.conf; 
    fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
    } 

    location ~ /\.ht { 
    deny all; 
    } 
} 
+0

Спасибо, что это решило мою проблему. –

+0

Это работает, спасибо много –

+0

Если я переключаю/обходит облачный фильтр, то конфигурация, упомянутая в вопросе, работает. Предполагая сценарий, в котором у нас есть сертификат SSL, мы можем иметь конфигурацию, которая работает в обоих сценариях? – Sandeep