Extra Form
PHP PHP 8.0
CMS Rhymix 2.x

기존 클플 프로 플랜을 쓰다가, 국내 CDN을 쓰고싶어 리버스 프록시를 통해 아마존 라이트세일에 직접 구성했습니다.

 

그런데 오히려 클플 미국 LAX 잡힐때 보다 사이트 속도(특히 TTBF)가 더 느리더라구요...

 

아래는 설정 파일인데 혹시 제가 잘못한 부분이 있을까요? ㅠㅠ

 

1. test.com.conf

 

proxy_cache_path /tmp/nginx levels=2:2 keys_zone=nginx_cache:512m inactive=30d;
proxy_cache_key "$host$request_uri";


server {
    listen       80;
    server_name  test.com www.test.com;
 
    return       301 https://$host$request_uri;
}
 
 
server {
    listen       443 ssl http2;
    server_name  test.com www.test.com;
    server_tokens off;

    charset utf-8;
 
ssl_certificate "/etc/letsencrypt/live/test.com/fullchain.pem";
ssl_certificate_key "/etc/letsencrypt/live/test.com/privkey.pem";
ssl_dhparam "/etc/ssl/certs/dhparam.pem";
    ssl_stapling on;
ssl_stapling_verify on; 
     
    location / {
        # 로그파일 설정
        access_log off;
        # 리버스 프록시 설정
include proxy_params;
        proxy_pass https://서버IP:443;
    }

location /socket.io/ {
proxy_pass http://서버IP:3000;
proxy_http_version 1.1;
proxy_read_timeout 24h;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

    # css, js, html, ico, 이미지들
    location ~* \.(?:scss|less|zip|js|css|webp|doc|csv|pdf|pls|ls|ppt|ps|class|jar|swf|ejs|fav|txt|m3u8|jpg|jpeg|gif|ico|png|bmp|pict|tif|tiff|webp|eps|ttf|eot|woff|woff2|otf|svg|svgz|mp4|m4a|m4v|mov|ts|wav|mp3|wma|ogg|midi|mid)$ {
        # 로그파일 설정
        access_log off;
        # 캐시 설정
        proxy_cache nginx_cache;
        add_header X-Proxy-Cache $upstream_cache_status;
        add_header Cache-Control "public";
        expires max;
        # 리버스 프록시 설정
include proxy_params;
        proxy_pass https://서버IP:443;

    }
}

 

2. proxy_params

 

proxy_redirect off;
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_ssl_session_reuse on;
proxy_request_buffering off;

 

3. ssl-common.conf

# SSL ciphers and protocols
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_protocols TLSv1.3 TLSv1.2;
ssl_prefer_server_ciphers on;

# SSL session cache
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 4h;
ssl_session_tickets off;

# Resolver for OCSP stapling
resolver 127.0.0.53 1.1.1.1 8.8.8.8 valid=300s ipv6=off;
resolver_timeout 5s;

 

  • Lv30
    본서버가 국내에 있나요? 그렇다면 더 느려질 이유가 없을텐데요.
    본서버가 국내가 아닌 해외라면 오히려 느려질 수도 잇을 것 같습니다.
  • Lv30 Lv4
    본 서버가 해외에 있습니다
    그래도 라이트세일의 경우 회선품질이 좋아서, 리버스 프록시를 구성하면 항상 한국에 위치한 엣지를 이용하므로 속도가 더 빨라질거라 기대했는데

    클플 LAX엣지의 속도가 더 빠른게 이해가 잘 안가네요 ㅠㅠ
  • Lv4 Lv30

    국내이용자 사용 PC - 인터넷회사 - aws 서울 - 클라우드플레어 서울엣지 - 해외서버

    이런 경로인데 클라우드프레어 서울 엣지로 붙은 다음 해외 어디인지 모르겠지만 여기 트래픽이 원할하지 않다면 국내 이용자가 클라우드플레어 서울쪽으로 붙어서 이득이 아닌 손해가 날 수도 있는거죠.

     

    클라우드플레어 서울 엣지에서 모두 캐싱해서 절대로 본서버에 사용자가 접속할 필요가 없다면 모르겠지만 어쨌든 방문자는 본서버로 경로를 통해서 접속해서 요청한 응답을 받아야 하니 이건 서버가 해외에 있다면 해외망 영향을 받을 수 밖에 없어 보입니다.

     

    오히려 사용자들이 직접 해외 엣지로 접속해서 거기서 본서버로 접속하는게 더 빠를 수도 있고 확율의 문제일 수도 있고 절대적으로 라이트세일 서울로 붙여서 간다고 빨라진다고 생각할 문제는 아닌거로 보입니다.

  • Lv30 Lv4

    아 제가 설명을 부족하게 드렸군요!!

    현재 구성은, 국내 접속자 -> 아마존 라이트세일 ----> 해외서버 구성입니다.

    클라우드플레어 자체를 해제한 상태입니다.

    지난번에 기진곰님께서 이렇게 셋팅하면, 아마존의 품질좋은 회선을 이용해 해외서버에 접속하게 되므로 ICN 엣지 와 100% 동일하게 셋팅가능하다고 해서 이렇게 셋팅해 보았습니다 ㅎㅎ

    nginx 설정파일을 보시면

    그냥 일반적인 html, php파일 등은 캐시를 bypass 하고

    이미지,css파일만 캐시하도록 설정했습니다

  • Lv4 Lv30

    네. 그럼 클라우드플레어 해외 엣지를 통해 본서버로 가는게 더 빠르다는건데요.
    뭐 중간에 클라우드플레어가 빠지면서 오히려 손해를 보는 케이스 일 수도 있죠.

    [사용자 인터넷 회선 -> aws ---> 위치한 해외서버] 의 경로나 트래픽품질이 우위에 있다고 장담할 수는 없으니까요.

    변경전에
    [사용자 인터넷 회선 -> 클라우드플레어 해외 엣지 -> 위치한 해외서버] 이 경로가 더 느릴 것이라는 근거 자체가 없으니까요.

     

    *요약하면 생각외로 해외서버에 클라우드플레어 회선의 도움이 컸었다. 라고 해석될 수 있을 것 같습니다.

  • Lv30 Lv4
    의외의 결과인것 같습니다 ㅎㅎ
    LAX로 잡히는게 큰 단점인것 같았는데, 의외로 클플이 선방을 하네요
  • Lv4 Lv30
    그 본서버의 해외가 미국이라면 아마도 꽤 큰 도움이 되는 것으로 압니다. 물론 다른 국가도 어떤 변수가 있을지 장담은 못하겠지만요.

    타운의 경우 LAX로 대부분 붙는 문제로 서버를 미국에 두었는데 느리다고 생각하는 분은 많지 않은 것 같습니다. 물론 LAX가 아닌 곳을 붙는 일부 방문자들도 있긴 하지만요.
  • Lv36

    이미지나 CSS처럼 라이트세일 서울지점에 직접 캐싱되는 리소스는 라이트세일이 클플보다 빠를 겁니다.

    그런데 흔히 TTFB를 측정할 때는 이미지나 CSS가 로딩되는 속도가 아니라

    매번 서버에서 직접 받아와야 하는 HTML 페이지의 로딩속도를 의미하지요.

     

    이 부분은 결국

      [국내 접속자 → 클플 LAX → 해외 본서버]

      [국내 접속자 → 라이트세일 서울 → 해외 본서버]

    둘 중 어느 쪽이 더 빠르냐로 귀결되는데, 해외 본서버의 위치가 LAX에서 멀지 않다면 어느 쪽이든 데이터가 움직여야 하는 물리적인 거리에는 큰 차이가 없겠지요? 그렇다면 크게 두 가지를 의심해 볼 수 있습니다.

     

    1. 국내 접속자 또는 해외 본서버의 통신사가 둘 중 어느 한 쪽과 궁합이 더 좋을 가능성

    2. SSL 접속 처리, gzip 압축, 버퍼링 설정 등에서 님 리버스 프록시의 설정보다 클플이 더 우수할 가능성

  • ? Lv3
    라이트세일에서 본서버로 통신할때는 http 로 하셔야될겁니다.
    ssl 핸드쉐이크때문에 핑의 2~3배가 됩니다.
  • ? Lv3 Lv36

    매번 SSL 핸드쉐이크를 다시 하는 멍청한 서버는 요즘 없습니다.
    클플도 본서버와 통신할 때 SSL을 사용하지만 딱히 느리지 않습니다.
    질문을 보면 keep-alive 사용중이고 proxy_ssl_session_reuse on; 라고 설정해 놓으셨네요.