Nginx

CloudFlare 在沒有 HTTPS 的情況下給出錯誤 522

  • September 15, 2021

按照我在評論中連結的教程,我已經在我的伺服器上設置了 Let’s Encrypt(使用 nginx)。我還使用以下 DNS 設置設置了 CloudFlare:

http://i.imgur.com/Z7PRD6l.png

我的 nginx 配置如下所示:

server {
   listen 80;
   server_name example.com;
   return 301 https://$server_name$request_uri;
}

server {
   listen 443 ssl;

   root /usr/share/nginx/html/public;
   index index.php index.html index.htm;

   server_name example.com www.example.com;

   ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
   ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

   ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
   ssl_prefer_server_ciphers on;
   ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';

   location / {
       try_files $uri $uri/ /index.php$is_args$args;
   }

   location ^~ /.well-known/ {
       allow all;
   }

   error_page 404 /404.html;

   error_page 500 502 503 504 /50x.html;
   location = /50x.html {
       root /usr/share/nginx/html;
   }

   location ~ \.php$ {
       try_files $uri =404;
       fastcgi_split_path_info ^(.+\.php)(/.+)$;
       fastcgi_pass unix:/var/run/php5-fpm.sock;
       fastcgi_index index.php;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       include fastcgi_params;
   }
}

如果我去https://www.example.com,該網站載入正常。但是當我去http://www.example.com(不是 HTTPS)時,它顯示錯誤 522:

http://i.imgur.com/JWBEd5S.png

怎麼了?我該如何解決?為什麼我的重定向不起作用?

你讀過CloudFlare 的 522 連接超時指南嗎?您是否將 SSL 設置為“完整 SSL”?對我來說,這在頁面規則之內,但可能有一個全域設置。

檢查 ec2 的入站防火牆規則 - 確保埠 80 / 443 已公開。

引用自:https://serverfault.com/questions/749796