질문/조언질답게시판
Extra Form
PHP PHP 7.0
CMS XpressEngine

클라우드플레어에서 설정 후 접속해보니 "ooo에서 리디렉션한 횟수가 너무 많습니다" 라는 문장이 나옵니다 ㅠㅠ

설정은 이렇게 했습니다. ㅠㅠ 

 

server {
02        listen      80 default_server;
03        listen [::]:80 default_server;
04        server_name    도메인.com;
05        return         301 https://$host$request_uri;
06 }
13 server {
14     listen      443 default;
15     listen [::]:443 default;
16     server_name  도메인.com;
17     root   /home/서버이름/public_html;
18     location / {
19         index  index.php index.html;
20     }
21         location ~ [^/]\.php(/|$) {
22         fastcgi_split_path_info ^(.+?\.php)(/.*)$;
23         if (!-f $document_root$fastcgi_script_name) {
24             return 404;
25         }
26         fastcgi_pass unix:/run/php/php7.0-fpm.sock;
27         fastcgi_index index.php;
28         include fastcgi_params;
29     }
30 }
  • profile

    1. SSL을 전혀 적용하지 않으셨네요. 443 포트에 연결만 한다고 https가 되는 것이 아닙니다. 인증서를 설치하고 listen 443 ssl http2; 설정이 들어가야 합니다.

     

    2. 클라우드플레어에서 SSL을 Flexible로 해놓으신 모양입니다. Flexible로 해놓으면 클플에서 서버에 연결할 때 80 포트를 이용합니다. 80 포트에는 리다이렉트밖에 없으니, 당연히 리다이렉트가 발생하지요.

     

    해결책 1: 서버에 SSL을 제대로 적용한 후, 클플에서 SSL을 Full로 설정하세요.

      (또는)

    해결책 2: 443 포트 쪽의 설정을 모두 지우고 원래대로 80 포트에 모든 설정을 다 붙이세요. 리다이렉트도 제거하시고요. 이 경우 클플에서는 Flexible을 계속 쓰시되, 항상 https로 리다이렉트하는 옵션이 있으니 그걸 활용하시면 됩니다. 인증서 구해다가 설치하시기 힘들면 이 방법이 가장 좋습니다.

     

    주의: 301 리다이렉트는 영원히 캐싱됩니다. 한 번이라도 301 리다이렉트를 사용하셨다면 설정을 바꾸실 때마다 브라우저 캐시를 비우고 다시 시도하셔야 합니다.

     

    참고: https://xetown.com/tips/1172256

  • profile ?
    인증서를 설치안하려고 클라우드플레어를 사용했습니다. 원인은 클라우드플레어에서 80 > 443으로 넘기고있는데 서버에서도 동일한 설정을 해놔서 발생한 문제였습니다.