HTTP到HTTPS Nginx的重定向过多
我有一个运行在LEMP堆栈上的网站.我已通过网站启用cloudflare.我正在将cloudflare灵活SSL证书用于https.当我在Chrome中打开网站时,它表明网站重定向了您太多次,并且在Firefox中检测到服务器正在以永远无法完成的方式重定向对该地址的请求.我尝试查看其他问题的答案,但似乎都无法解决问题. NGINX conf文件:-
I have a website running on a LEMP stack. I have enabled cloudflare with the website. I am using the cloudflare flexible SSL certificate for https. When i open the website in chrome it shows website redirected you too many times and in firefox has detected that the server is redirecting the request for this address in a way that will never complete. I have tried to see answers of other questions but none of them seem to solve the problem. NGINX conf file:-
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;
}
}
如果有人能指出我做错了事,我将不胜感激.
I would be highly grateful if anyone can point out what I am doing wrong.
由于您正在使用cloudflare flexible SSL,因此您的nginx配置文件将如下所示:-
Since you are using cloudflare flexible SSL your nginx config file wll look like this:-
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;
}
}