海外のWebサーバー+ロシアの統計=ページ読み込み速度の加速

外国のホスティング業者(たとえば、Hetzner)を選択する際の最も一般的な質問:「サイトの速度は低下しますか?」 ロシアからヘッツナーへのpingは非常に小さいという事実にもかかわらず、ロシアにあるサーバーからの静音(特に重い、または大量にある場合)はより速く聞こえます。



ヘッツナーに滞在中に速度を上げるためのいくつかのオプションがあります。



1.ロシアのCDNサービスの使用。

2.ロシアにある/ vpsサーバーを介した静的データのプロキシ/キャッシュ。



ロシアにあるサーバーを介してnginxを使用して静的にプロキシ/キャッシュを技術的に実装する方法を説明します。





この問題を解決するには、すべての静的を別のサブドメインに移動し、多くの静的がある場合は複数のドメインに移動する必要があります。 たとえば、assets01.example.com、assets02.example.com、...、assets04.example.com(4つを超えるドメインを使用すると、DNS解決にも時間がかかるため、パフォーマンスが低下する可能性があります) したがって、ブラウザーは、同時接続の制限をバイパスして、ページをより速くロードします。 ページ上の統計へのリンクが常に同じままであることが重要です。 asset01-asstets04ドメインが常にシャッフルされる場合、ブラウザーはそれを再ロードします。



次の例では、静的変数はHetznerのサーバーから透過的にプロキシされ、ロシアのサーバーにキャッシュされるため、再読み込みはHetznerのサーバーに変更が加えられた場合にのみ発生します。 たとえば、cssを変更する場合は、リクエストのファイル名または番号を変更する必要があります。 たとえば、 assetsXX.example.com / css / styles.css ?2342324というアドレスを使用できます。styles.cssファイルを変更する場合は、シリアルを他のものに変更します。 これは、nginxパラメータ「expires max」を使用する場合でも便利です。ブラウザは更新を確認することさえしないため、ページを開く速度も向上します。



ロシアのサーバーのnginxの設定は次のようになります(Hetznerのサーバーでは、エイリアスも登録する必要があります)。



#      30 ,    100  proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=static:32m inactive=30d max_size=100g; server { listen 80; server_name assets01.example.com assets02.example.com assets03.example.com assets04.example.com; # access_log     , ..             access_log off; error_log /var/log/nginx/example.com-err.log; #     ,         http://assetsXX.example.com/ -      location / { rewrite ^ http://example.com$uri permanent; } #  ,    location ~* \.(jpg|jpeg|gif|png|ico|css|midi|wav|bmp|js|swf|flv|avi|djvu|mp3)$ { #  IP   Hetzner proxy_pass http://111.111.111.111:80; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_buffer_size 16k; proxy_buffers 32 16k; #   expires  ,    serial ( , http://assetsXX.example.com/css/styles.css?2342324) if ($request_uri ~* "\?[0-9]+$") { expires max; break; } proxy_cache static; #      30  proxy_cache_valid 30d; proxy_ignore_headers "Cache-Control" "Expires"; #        ,    ,    assetsXX     (  /css/styles.css?123  /css/styles.css?321   ) proxy_cache_key "$uri$is_args$args"; proxy_cache_lock on; } }
      
      






All Articles