CPUïŒ1 x 2GHz
HDDïŒ10Gb
RAMïŒ512Mb
OSïŒDebian 8 x64
ã·ã¹ãã ã®ã¹ããŒã ã¯æ¬¡ã®ãšããã§ãã
åè·¯ã®èª¬æ
ãµã€ã蚪åè ã®å Žåããããã¯HTTPSã«ãªãã€ã¬ã¯ããããnginxã¯Varnishã®ãããã·ãšããŠæ©èœããŸããäžæ¹ãnginxã¯HTTPSæ¥ç¶ã®å®è£ ã«å ããŠããŠãŒã¶ãŒã«éä¿¡ãããããŒã¿ã®gzipå§çž®ãå®è¡ããŸãã ãã®ã·ã¹ãã ã®æ¬¡ã®èŠçŽ ã¯ãããŒã6081ã§ã®æ¥ç¶ãåŸ æ©ããŠããVarnish HTTP Acceleratorã§ãã ã¯ã©ã€ã¢ã³ããããªã¯ãšã¹ããåãåããšããã£ãã·ã¥å ã§ãªã¯ãšã¹ããããURLãæ€çŽ¢ããèŠã€ãã£ãå Žåã¯ããã«ããã³ããšã³ããè¿ããŸãã ãããã£ãŠãèŠæ±ããããã¡ã€ã«ããã£ãã·ã¥å ã«ããå ŽåãããŒãžèŠæ±ã®é床ã¯éçããŒã¿ã®èŠæ±ã®é床ã«äœäžããŸãã èŠæ±ããããã¡ã€ã«ããã£ãã·ã¥ã«èŠã€ãããªãå ŽåãVarnishã¯èŠæ±ãããã¯ãšã³ãã«æž¡ããŸãã Varnishã¯ã¯ã©ã€ã¢ã³ãåŽã®æé©åãå®è£ ããŸããããã§ã¯ãCache-ControlããããŒãšExpiresããããŒãéçããŒã¿ã«èšå®ãããã¯ã©ã€ã¢ã³ãåŽã§ãã®ããŒã¿ããã£ãã·ã¥ããå¿ èŠãããããšããã©ãŠã¶ãŒã«ç€ºããŸãã ãããã£ãŠããµã€ãã®ããŒãæéãççž®ããããµãŒããŒã®è² è·ã軜æžãããŸãã
ç¹°ãè¿ããŸãããnginxã¯ããã¯ãšã³ããšããŠæ©èœãã127.0.0.1ïŒ81ã§æ¥ç¶ãåŸ æ©ããŸãã PHPã®è§£éã¯ãFPMã䜿çšããŠå®è£ ãããŸãã PHPããŒãžã§ã³ã¯5.6ã§ãOPcacheã¢ã¯ã»ã©ã¬ãŒã¿ãŒã¯ããã©ã«ãã§æå¹ã«ãªã£ãŠããŸãã DBMSãšããŠ-MariaDB10ãããã¯ããã©ãŒãã³ã¹ãæé«ã®1ã€ã§ãããMySQLã®ãã©ãŒã¯ã®äžã§é©åºŠã«RAMããŒã¿ããŒã¹ãæ¶è²»ããŸãã MyISAMã¯ããŒãã«ãšã³ãžã³ã§ããæžã蟌ã¿ã¯ãã£ãã«è¡ãããªããããäž»ã«ãã®ãšã³ãžã³ãæé©åãããèªã¿åãã§ãã InnoDBãšã³ãžã³ãç¡å¹ã«ããããšã«ãããRAMãä¿åãããŸãã æåŸã«ãWordPressã¯Varnish HTTP Purgeãã©ã°ã€ã³ãã€ã³ã¹ããŒã«ãããCMSãšããŠæ©èœããå€æŽãè¡ãããããŒãžã®ã¢ãã¬ã¹ã«PURGEãªã¯ãšã¹ããéä¿¡ããŸããããã«ããããããã®ããŒãžã®Varnishãã£ãã·ã¥ãã¯ãªã¢ãããŸãã ãããã£ãŠããŠãŒã¶ãŒã¯åžžã«ææ°ããŒãžã§ã³ã®ãµã€ããååŸããŸãã 次ã«ããããã®ã³ã³ããŒãã³ãã®ã€ã³ã¹ããŒã«ãšæ§æãããã³çºçããåé¡ã«ã€ããŠè©³ãã説æããŸãã
nginxãã€ã³ã¹ããŒã«ããŠæ§æãã
ã€ã³ã¹ããŒã«ïŒ
apt-get install nginx
ã¡ã€ã³èšå®/etc/nginx/nginx.confã®å 容ïŒ
# , user www-data www-data; # auto worker_processes auto; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events { # worker_connections 1024; # ( FreeBSD kqueue) use epoll; # multi_accept on; } http { # mime- - include /etc/nginx/mime.types; default_type application/octet-stream; # nginx server_tokens off; # sendfile read+write sendfile on; # , sendfile(). sendfile_max_chunk 128k; # tcp_nopush on; tcp_nodelay on; # reset_timedout_connection on; # client_header_timeout 3; client_body_timeout 5; # , 3 send_timeout 3; # client_header_buffer_size 2k; client_body_buffer_size 256k; # client_max_body_size 12m; # access_log off; # include /etc/nginx/conf.d/*.conf; }
ããã¯ãšã³ãæ§æãã¡ã€ã«/etc/nginx/conf.d/backend.confãäœæããŸãã
server { # 81 listen 127.0.0.1:81; # root /var/www/site.ru/public_html; index index.php; # gzip- . . 9 . , text/plain, 1 , CPU gzip on; gzip_comp_level 9; gzip_min_length 512; gzip_buffers 8 64k; gzip_types text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/svg+xml; gzip_proxied any; # server_name site.ru www.site.ru; # location ~ /\. { deny all; } # location ~* /(?:uploads|files)/.*\.php$ { deny all; } # URI location / { try_files $uri $uri/ /index.php?$args; } # */wp-admin rewrite /wp-admin$ $scheme://$host$uri/ permanent; location ~ \.php$ { # 404 , WordPress try_files $uri =404; # php FPM include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/var/run/php5-fpm.sock; } }
nginxã®HTTPSèšå®ã®è©³çŽ°ãªèª¬æã®ãããã¯ã«ã€ããŠã¯ããã®èšäºãèªãããšããå§ãããŸãïŒ habrahabr.ru/post/252821
ããã³ããšã³ãæ§æãã¡ã€ã«/etc/nginx/conf.d/frontend.confãäœæããŸãã
server { # HTTPS listen REAL_IP:80; server_name site.ru www.site.ru; return 301 https://$server_name$request_uri; } server { listen 93.170.105.102:443 ssl; server_name site.ru www.site.ru; # Keep-Alive keepalive_timeout 60 60; # . , text/plain, , . , CPU . gzip on; gzip_comp_level 1; gzip_min_length 512; gzip_buffers 8 64k; gzip_types text/plain; gzip_proxied any; # , ssl_prefer_server_ciphers on; # TLS 2 ssl_session_cache shared:TLS:2m; ssl_session_timeout 2m; # , ssl_certificate /etc/ssl/combined.crt; # ssl_certificate_key /etc/ssl/3_site.ru.key; # - ssl_dhparam /etc/ssl/dh2048.pem; # ssl_protocols TLSv1.2 TLSv1.1 TLSv1; # , forward secrecy ssl_ciphers EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA512:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:ECDH+AESGCM:ECDH+AES256:DH+AESGCM:DH+AES256:RSA+AESGCM:!aNULL:!eNULL:!LOW:!RC4:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS; # Strict-Transport-Secutiry add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains'; location / { # Varnish proxy_pass http://127.0.0.1:6081/; 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_set_header X-Forwarded-Proto https; proxy_set_header X-Forwarded-Port 443; } }
nginxã®èšå®ãèªã¿çŽããŸãïŒ
service nginx reload
ããã§ããµã€ãã«ã¢ã¯ã»ã¹ããããšãããšããšã©ãŒ502ã衚瀺ãããŸããã¯ãã¹ã¯ãŸã å®è¡ãããŠããªããããããã¯æ£åžžã§ãã
Varnishãã€ã³ã¹ããŒã«ããŠæ§æãã
ãã¹ãã€ã³ã¹ããŒã«ããŸãã
apt-get install varnish
èµ·åãã©ã¡ãŒã¿ãã¡ã€ã«ã¯ããã«ãããŸã-/ etc / default / varnishã DAEMON_OPTSã§ã次ã®ãã©ã¡ãŒã¿ãŒãèšå®ããŸãã
DAEMON_OPTS="-a :6081 \ -T 127.0.0.1:6082 \ -f /etc/varnish/default.vcl \ -S /etc/varnish/secret \ -s malloc,128m"
-a-Varnishãæ¥ç¶ãåãå ¥ããããŒããèšå®ããŸãããã®å Žåãããã³ããšã³ããã-nginxã
-T-管çè ãããã§å転ããŠããŸãã詳现ã¯-Sãã©ã°ã®èª¬æã§ãã
-f-VCLæ§æãã¡ã€ã«ãèŠæ±ã®åŠçãšVarnishã§ã®ãã£ãã·ã¥ã®ã«ãŒã«ãå®çŸ©ããããã®ç¹å¥ãªèšèªã
-S-Varnishã«ã¯ç®¡çããã«ããããŸãã å ¥åããã«ã¯ãvarnishadmã³ãã³ããå®è¡ããå¿ èŠãããããŠãŒã¶ãŒã¯èªèšŒã®ããã«/ etc / varnish / secretãã¡ã€ã«ãžã®èªã¿åãæš©éãæã£ãŠããå¿ èŠããããŸãã
-sã¯ããã£ãã·ã¥ã®å Žæãšãã®ãµã€ãºïŒãã®å Žåã¯RAMã®128MBïŒã瀺ããŸãã
ããããæ¢ã«ç解ããŠããããã«ãæãèå³æ·±ãã®ã¯ããªã¯ãšã¹ããåŠçããããã®ã«ãŒã«ãå«ããã¡ã€ã«ã§ç§ãã¡ãåŸ ã£ãŠããããšã§ãã Varnishããã»ã¹ã®éå§æã«ããã®ãã¡ã€ã«ãã³ã³ãã€ã«ãããŸãã VCLã¯ããããã®ã«ãŒã«ã説æããããã€ãã®æ©èœãµãã»ã¯ã·ã§ã³ã䜿çšããŸãã ãããã«ã€ããŠç°¡åã«èª¬æããå ¬åŒãŠã§ããµã€ãã§èªãããã«å®å šãªèª¬æããå§ãããŸãã
sub vcl_recv-ãã®é¢æ°ã¯ãã¯ã©ã€ã¢ã³ãããèŠæ±ãæ¥ããšãã«äœ¿çšãããŸãã
sub vcl_pass-ã¯ã©ã€ã¢ã³ãèŠæ±ãããã¯ãšã³ãã«çŽæ¥æž¡ãå¿ èŠãããå Žåã«å®è¡ããããã£ãã·ã¥ããããã£ãã·ã¥å ã§äžèŽãããã®ãæ¢ããŸããã
sub vcl_hash-ãã£ãã·ã¥ã«ãŒã«ãå®çŸ©ããŸããããšãã°ãã¯ã©ã€ã¢ã³ãã«ããå§çž®ã®ãµããŒãããŸãã¯ã¯ã©ã€ã¢ã³ãã®ä»ã®æ©èœãªã©ãç°ãªãæ¡ä»¶ã«å¿ããŠãåãããã¥ã¡ã³ãã«å¯ŸããŠè€æ°ã®ãªããžããªã䜿çšã§ããŸãã ç§ãã¡ã®å ŽåãVarnishã®ã¯ã©ã€ã¢ã³ãã¯ããã³ããšã³ãã«nginxãããªãããã䜿çšãããŸããã
sub vcl_backend_response-ãã®é¢æ°ã¯ããªã¯ãšã¹ããããã¯ãšã³ãïŒnginxïŒããæ¥ããšãã«äœ¿çšãããŸãã
sub vcl_deliver-ã¯ã©ã€ã¢ã³ãã«ããŒã¿ãéä¿¡ããçŽåã«äœ¿çšããŸããããšãã°ãããããŒãè¿œå /å€æŽããŸãã
VCLã³ã³ããŒãã³ãã®æäœå³ã¯ã次ã®ããã«è¡šãããšãã§ããŸãã
vcl_missé¢æ°ããããã¯ãšã³ãã«ã¢ã¯ã»ã¹ãããšãããã¯ãšã³ãã®å¿çããã£ãã·ã¥ã«éä¿¡ãããŸãã èšèªèªäœã¯Cã«éåžžã«ãã䌌ãŠããŸããå§ããŸãããã ãã¡ã€ã«/etc/varnish/default.vclãéããã³ãŒãã£ã³ã°ãéå§ããŸãã
# , VCL 4 vcl 4.0; # backend default { .host = "127.0.0.1"; .port = "81"; } # IP/, PURGE- acl purge { "localhost"; "127.0.0.1"; } # sub vcl_recv { # if (req.method == "PURGE") { # , if (!client.ip ~ purge) { return(synth(405, "This IP is not allowed to send PURGE requests.")); } return (purge); } # POST- Basic- if (req.http.Authorization || req.method == "POST") { return (pass); } # if (req.url ~ "wp-(login|admin)" || req.url ~ "preview=true") { return (pass); } # sitemap robots, sitemap Google XML Sitemaps if (req.url ~ "sitemap" || req.url ~ "robots") { return (pass); } # cookies, "has_js" "__*", CloudFlare Google Analytics, Varnish , cookies. set req.http.Cookie = regsuball(req.http.Cookie, "(^|;\s*)(_[_a-z]+|has_js)=[^;]*", ""); # ";" cookies, set req.http.Cookie = regsub(req.http.Cookie, "^;\s*", ""); # Quant Capital cookies ( ) set req.http.Cookie = regsuball(req.http.Cookie, "__qc.=[^;]+(; )?", ""); # wp-settings-1 cookie set req.http.Cookie = regsuball(req.http.Cookie, "wp-settings-1=[^;]+(; )?", ""); # wp-settings-time-1 cookie set req.http.Cookie = regsuball(req.http.Cookie, "wp-settings-time-1=[^;]+(; )?", ""); # wp test cookie set req.http.Cookie = regsuball(req.http.Cookie, "wordpress_test_cookie=[^;]+(; )?", ""); # cookie, ( ) if (req.http.cookie ~ "^ *$") { unset req.http.cookie; } # cookies, if (req.url ~ "\.(css|js|png|gif|jp(e)?g|swf|ico|woff|svg|htm|html)") { unset req.http.cookie; } # cookies "wordpress_" "comment_" if (req.http.Cookie ~ "wordpress_" || req.http.Cookie ~ "comment_") { return (pass); } # cookie , if (!req.http.cookie) { unset req.http.cookie; } # cookies, WordPress if (req.http.Authorization || req.http.Cookie) { # Not cacheable by default return (pass); } # return (hash); } sub vcl_pass { return (fetch); } sub vcl_hash { hash_data(req.url); return (lookup); } # sub vcl_backend_response { # unset beresp.http.Server; unset beresp.http.X-Powered-By; # robots sitemap if (bereq.url ~ "sitemap" || bereq.url ~ "robots") { set beresp.uncacheable = true; set beresp.ttl = 30s; return (deliver); } # , ... if (bereq.url ~ "\.(css|js|png|gif|jp(e?)g)|swf|ico|woff|svg|htm|html") { # unset beresp.http.cookie; # - set beresp.ttl = 7d; # Cache-Control Expires, , unset beresp.http.Cache-Control; set beresp.http.Cache-Control = "public, max-age=604800"; set beresp.http.Expires = now + beresp.ttl; } # if (bereq.url ~ "wp-(login|admin)" || bereq.url ~ "preview=true") { set beresp.uncacheable = true; set beresp.ttl = 30s; return (deliver); } # , if (!(bereq.url ~ "(wp-login|wp-admin|preview=true)")) { unset beresp.http.set-cookie; } # POST- Basic if ( bereq.method == "POST" || bereq.http.Authorization ) { set beresp.uncacheable = true; set beresp.ttl = 120s; return (deliver); } # if ( bereq.url ~ "\?s=" ){ set beresp.uncacheable = true; set beresp.ttl = 120s; return (deliver); } # , ! if ( beresp.status != 200 ) { set beresp.uncacheable = true; set beresp.ttl = 120s; return (deliver); } # set beresp.ttl = 1d; # TTL set beresp.grace = 30s; return (deliver); } # sub vcl_deliver { # unset resp.http.X-Powered-By; unset resp.http.Server; unset resp.http.Via; unset resp.http.X-Varnish; return (deliver); }
次ã«ãã³ãã³ããå®è¡ããŸãã
service varnish restart
ãã©ãŠã¶ã§ãµã€ãã«æž¡ããšãindex.phpã衚瀺ãããŸããããã¯äºåã«äœæããå¿ èŠããããŸãã
ãã¹ãšDebian 8ã®åé¡
ããããVarnishãçä¿¡æ¥ç¶ãåãå ¥ããããŒããå€æŽããå ŽåããŸãã¯ãã£ãã·ã¥ãµã€ãºãå€æŽããå Žåã¯ã©ãã§ãããã å ¬åŒããã¥ã¡ã³ãããå€æãããšããã¹ã«æ²¿ã£ãŠé 眮ãããVarnishèµ·åãã©ã¡ãŒã¿ãŒã䜿çšããŠãã¡ã€ã«ãå€æŽããå¿ èŠããããŸãïŒ/ etc / default / varnishãããŠãµãŒãã¹ãåèµ·åããŸãã ããããéããŸãïŒ äœãå€æŽãããŸãããå é ã«ç§»åããŠãcãããŒãæŒããšã以åã®èšå®ã§ãµãŒãã¹ãéå§ãããŠããããšãããããŸãã åé¡ã¯ãDebianã®æ°ããããŒãžã§ã³ã§ã¯ãinit.dã®ä»£ããã«systemdãåæåã·ã¹ãã ãšããŠäœ¿çšãããããã/ lib / systemd / system / varnish.serviceãã¡ã€ã«ã«ç§»åããŠãExecStartãã£ã¬ã¯ãã£ãã«åãèµ·åãã©ã¡ãŒã¿ãŒãæžã蟌ãå¿ èŠããããšããããšã§ãã
[Unit] Description=Varnish HTTP accelerator [Service] Type=forking LimitNOFILE=131072 LimitMEMLOCK=82000 ExecStartPre=/usr/sbin/varnishd -C -f /etc/varnish/default.vcl ExecStart=/usr/sbin/varnishd -a :6081 -T 127.0.0.1:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,128m ExecReload=/usr/share/varnish/reload-vcl [Install] WantedBy=multi-user.target
ä¿ååŸã次ã®ã³ãã³ããå®è¡ããŠå€æŽãæå¹ã«ããŸãã
systemctl daemon-reload service varnish restart
çŸæç¹ã§ã¯ããã®åé¡ã¯ãã€ãã©ã®ããã«è§£æ±ºãããã¯äžæã§ãããããéçºè ã«æžã蟌ãŸããŸãããã®ãããæŽæ°åŸã«äžåºŠãã¹ãŠãèœã¡ãªãããã«ãäž¡æ¹ã®ãã¡ã€ã«ã«åãå€æŽãå ããŠãã ããã
PHP-FPMã®ã€ã³ã¹ããŒã«ãšæ§æ
DBMSã䜿çšããããã«FPMãšPHPã©ã€ãã©ãªãã€ã³ã¹ããŒã«ããŸãã
apt-get install php5-fpm php5-mysqlnd
æ§æãã¡ã€ã«/etc/php5/fpm/pool.d/www.confã«ç§»åããŠããã£ã¬ã¯ãã£ããå€æŽããŸãã
listen = 127.0.0.1:9000
以äžãžïŒ
listen = /var/run/php5-fpm.sock
åããã¡ã€ã«ã§ãã¯ãŒã«ãŒã®èšå®ãèšå®ããŸãã
; pm = dynamic ; , , pm.max_spare_servers. pm.max_children = 10 ; FPM pm.start_servers = 1 ; ( ) pm.min_spare_servers = 1 ; ( , ) pm.max_spare_servers = 3 ; , , pm.max_requests = 500
/etc/php5/fpm/php.iniã®ããã€ãã®ãã£ã¬ã¯ãã£ããå€æŽããŸã
upload_max_filesize = 10M post_max_size = 12M allow_url_fopen = Off
post_max_sizeã¯ãupload_max_filesizeãããå°ã倧ããèšå®ãããŸããããã¯ããã¡ã€ã«ã«å ããŠããªã¯ãšã¹ãã«ä»ã®ããŒã¿ãå«ãŸããããã§ãã
ããã§ã¯ãallow_url_fopenãã£ã¬ã¯ãã£ãã䜿çšããŠããªã¢ãŒãã«ããã¹ã¯ãªããã®å®è¡ãçŠæ¢ããŠããŸãïŒãªã¢ãŒãã€ã³ã¯ã«ãŒãã®è匱æ§ãæªçšããå¯èœæ§ãæé€ããŠããŸãïŒã
ãããŠãèšå®ãåèªã¿èŸŒã¿ããããFPMã«æ瀺ããŸãã
service php5-fpm reload
phpinfoïŒïŒãåºåãããã¡ã€ã«ãäœæãããã©ãŠã¶ã§ã¢ã¯ã»ã¹ãããšããã¹ãŠãæ©èœããã¯ãã§ãã æ¢ã«ãã¹ã«ãã£ãã·ã¥ãããŠããããšãå¿ããªãã§ãã ãããPHPã®æ§æãå€æŽããŠãããã©ãŠã¶ãŒã§æŽæ°ãããŸããã ãã®ãã¡ã€ã«ãVarnishã§ã¹ãããããã«ãŒã«ãäœæããããVarnishã§ã¯ãªããããã·ããã¹ãäžã«ããŒã81ã®ããã¯ãšã³ãã«çŽæ¥ãããã·ããããšãã§ããŸãã
MariaDBãã€ã³ã¹ããŒã«ããŠæ§æãã
ãã®DBMSãéžæããçç±ã¯ãããã©ãŒãã³ã¹ãé«ããéãè² è·ã«èããèœåããããMySQLãšæ¯èŒããŠRAMã®æ¶è²»éãå°ãªãããšãšãWordPressãšã®å®å šãªäºææ§ãããããã§ãã ã€ã³ã¹ããŒã«ã¯éåžžã«ç°¡åã§ãrootãŠãŒã¶ãŒã®ãã¹ã¯ãŒããèŠæ±ãããŸãã
apt-get install mariadb-server
MyISAMã¯ããŒãã«ãšã³ãžã³ãšããŠäœ¿çšããŸããããã¯ãããŒãã«ãžã®æžã蟌ã¿ããŸãã§ãããèªã¿åãæã«MyISAMãæé«ã®ããã©ãŒãã³ã¹ãçºæ®ããããã§ãã InnoDBãµããŒããå®å šã«ç¡å¹ã«ããŠãRAMã解æŸããŸããã èšå®ã¯/etc/mysql/my.cnfãã¡ã€ã«ã«ä¿åãããŸãã å€æŽãããã£ã¬ã¯ãã£ãã®ã¿ã説æããŸãã
# key_buffer = 64M # query_cache_size = 32M # MyISAM default-storage-engine=MyISAM # InnoDB skip-innodb
å€æŽãä¿åããåŸããµãŒãã¹ãåèµ·åããŸãã
service mysql restart
WordPressã®ã«ã¹ã¿ãã€ãº-ãã¹HTTPããŒãžãã©ã°ã€ã³
WP管çããã«ã§ãVarnish HTTP Purgeããã©ã°ã€ã³ãã€ã³ã¹ããŒã«ããŸãã çŸåšãããŒã¿ãæŽæ°ãããšãå€æŽãããããŒãžã«PURGEãªã¯ãšã¹ããéä¿¡ãããVarnishã®ãã£ãã·ã¥ãã¯ãªã¢ããã蚪åè ã®ããŒã¿ã¯åžžã«æŽæ°ãããŸãã
è¿œå ã®æé©å
Varnishã§ã¯ã©ã€ã¢ã³ãåŽãæé©åããããã«ãããŒã«ã«ã¯ã©ã€ã¢ã³ããã£ãã·ã¥ã«éçããŒã¿ãä¿åãããããã©ãŠã¶ãŒã«æ瀺ããŸãã ãã ããããã«æé©åããå Žåã¯ã developers.google.com / speed / pagespeed / insightsã«ã¢ã¯ã»ã¹ããŠããµã€ãã®URLãŸãã¯ç¹å®ã®ããŒãžãå ¥åããŠãã ããã æšå¥šäºé ã®ãªã¹ããšãcssããã³jsã¹ã¿ã€ã«ã®å§çž®ããŒãžã§ã³ãå«ãã¢ãŒã«ã€ããæäŸãããŸãã ããªãã®ãŠã§ããµã€ãã§ãããã眮ãæãã転éãããããŒã¿ã®éãæžå°ãããããããŠã³ããŒãé床ãããã«éããªããŸãããµãŒããŒã®è² è·ãšãã£ãã·ã¥å ã®ãããã®ãã¡ã€ã«ãå æããã¹ããŒã¹ãæžå°ããŸãã
ãã©ã³ããjqueryã©ã€ãã©ãªãªã©ããµãŒãããŒãã£ã®ãµãŒããŒããèŠæ±ãããããã¥ã¡ã³ããã©ãããŸããïŒ ããããèªåèªèº«ã«è»¢éã§ããŸããããã§ã¯ã1ã€ã®ãµãŒããŒã«ã®ã¿æ¥ç¶ããããšã§ãããŒãžã®èªã¿èŸŒã¿é床ãåäžããŸãããåæã«ãããã®ãªã¹ããšå šäœçãªèªã¿èŸŒã¿ãå¢å ããŸãã ã©ã®ãªãã·ã§ã³ãéžæããã-ãµãŒããŒã®è² è·ãšé 延ã«å¿ããŠãèªåã§æ±ºå®ããŠãã ããã
ãŸãšã
ã»ãšãã©ã®å Žåãã¯ãã¹ã®gzipå§çž®ãšãã£ãã·ã¥ãæ倧ã®å¹æããããããŸãã å€ãã®è¿œå ã®æé©åææ³ããã§ã«ã³ã¡ã³ãã«èšè¿°ãããŠããŸãããå¿ èŠã«å¿ããŠç¢ºå®ã«èª¿æ»ããŠå®è£ ããŸãã ãããŸã§ã®éãæé©åã®çµæã¯æ¬¡ã®ãšããã§ãã
ã«
åŸ
å°ãåŸã§æ¬æ Œçãªã¹ãã¬ã¹ãã¹ããå®æœããŸãã
ãœãŒã¹ïŒ webshake.ru/post/206