클라우드플레어에서 설정 후 접속해보니 "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 |
} |
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