Skip to content

Latest commit

 

History

History
 
 

www

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Here are the rules that you need to add to a server configuration for Nginx to operate as a WebPagetest server.  Make sure to change the script path in the fcgi section.

        location / {
                index  index.php;
        }

        # disable chunked encoding for mp4 files because it breaks flash video on firefox
        location ~* \.mp4 {
                gzip off;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        location ~ /\.ht {
                deny  all;
        }

        # block protected files
        location ~* \.(gz|ini|inc) {
                deny all;
        }

        #webpagetest rewrite rules
        rewrite ^/about$ /about.php last;
        rewrite ^/traceroute$ /traceroute.php last;
        rewrite ^/mobile$ /mobile.php last;
        rewrite ^/tips$ /tips.php last;
        rewrite ^/pss$ /pss.php last;
        rewrite ^/compare$ /pss.php last;
        rewrite ^/blink$ /blink.php last;

        #result paths
        rewrite ^/result/([a-zA-Z0-9_]+)$ /result/$1/ permanent;
        rewrite ^/result/([a-zA-Z0-9_]+)/$ /results.php?test=$1 last;
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)/waterfall$ /result/$1/$2/details/ permanent;
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)/waterfall/$ /result/$1/$2/details/ permanent;
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)/details/$ /details.php?test=$1&run=$2  last;
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)/waterfall/cached$ /result/$1/$2/details/cached/ permanent;
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)/waterfall/cached/$ /result/$1/$2/details/cached/ permanent;
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)/details/cached/$ /details.php?test=$1&run=$2&cached=1  last;
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)/optimization$ /result/$1/$2/performance_optimization/ permanent;
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)/optimization/$ /result/$1/$2/performance_optimization/ permanent;
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)/performance_optimization/$ /performance_optimization.php?test=$1&run=$2  last;
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)/optimization/cached$ /result/$1/$2/performance_optimization/cached/ permanent;
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)/optimization/cached/$ /result/$1/$2/performance_optimization/cached/ permanent;
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)/performance_optimization/cached/$ /performance_optimization.php?test=$1&run=$2&cached=1 last;
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)/screen_shot/$ /screen_shot.php?test=$1&run=$2 last;
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)/screen_shot/cached/$ /screen_shot.php?test=$1&run=$2&cached=1 last;
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)/breakdown/$ /breakdown.php?test=$1&run=$2 last;
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)/breakdown/cached/$ /breakdown.php?test=$1&run=$2&cached=1 last;
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)/domains/$ /domains.php?test=$1&run=$2 last;
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)/domains/cached/$ /domains.php?test=$1&run=$2&cached=1 last;
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)/optimization_report/$ /optimization_report.php?test=$1&run=$2 last;
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)/optimization_report/cached/$ /optimization_report.php?test=$1&run=$2&cached=1 last;
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)/pagespeed/$ /pagespeed.php?test=$1&run=$2 last;
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)/pagespeed/cached/$ /pagespeed.php?test=$1&run=$2&cached=1 last;
        rewrite ^/testlog/([0-9]+)$ /testlog/$1/ permanent;
        rewrite ^/testlog/([0-9]+)/$ /testlog.php?days=$1 last;
        rewrite ^/xmlResult/([a-zA-Z0-9_]+)/$ /xmlResult.php?test=$1 last;
        rewrite ^/testlog.csv /testlog.php?f=csv last;
        rewrite ^/waterfall.png /waterfall.php last;

        #old direct path to images
        rewrite ^/results/([a-zA-Z0-9])([a-zA-Z0-9]+)/([a-zA-Z0-9_]+).png$ /results/old/_$1/$1$2/$3.png last;
        rewrite ^/results/([a-zA-Z0-9])([a-zA-Z0-9]+)/([a-zA-Z0-9_]+).jpg$ /results/old/_$1/$1$2/$3.jpg last;
        rewrite ^/results/old/_([a-zA-Z0-9])/([a-zA-Z0-9]+)/([a-zA-Z0-9_]+).png$ /results/old/$2/$3.png last;

        #csv combined results
        rewrite ^/result/([a-zA-Z0-9_]+)/.*page_data.csv$ /csv.php?test=$1 last;
        rewrite ^/result/([a-zA-Z0-9_]+)/.*requests.csv$ /csv.php?test=$1&requests=1 last;

        #thumbnails
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)_screen_thumb.jpg$ /thumbnail.php?test=$1&run=$2&file=$2_screen.jpg last;
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)_Cached_screen_thumb.jpg$ /thumbnail.php?test=$1&run=$2&cached=1&file=$2_Cached_screen.jpg last;
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)_waterfall_thumb.png$ /thumbnail.php?test=$1&run=$2&file=$2_waterfall.png last;
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)_Cached_waterfall_thumb.png$ /thumbnail.php?test=$1&run=$2&cached=1&file=$2_Cached_waterfall.png last;
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)_optimization_thumb.png$ /thumbnail.php?test=$1&run=$2&file=$2_optimization.png last;
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)_Cached_optimization_thumb.png$ /thumbnail.php?test=$1&run=$2&cached=1&file=$2_Cached_optimization.png last;

        #old direct thumbnail paths
        rewrite ^/results/old/([a-zA-Z0-9_]+)/([0-9]+)_screen_thumb.jpg$ /thumbnail.php?test=$1&run=$2&file=$2_screen.jpg last;
        rewrite ^/results/old/([a-zA-Z0-9_]+)/([0-9]+)_Cached_screen_thumb.jpg$ /thumbnail.php?test=$1&run=$2&cached=1&file=$2_Cached_screen.jpg last;
        rewrite ^/results/old/([a-zA-Z0-9_]+)/([0-9]+)_waterfall_thumb.png$ /thumbnail.php?test=$1&run=$2&file=$2_waterfall.png last;
        rewrite ^/results/old/([a-zA-Z0-9_]+)/([0-9]+)_Cached_waterfall_thumb.png$ /thumbnail.php?test=$1&run=$2&cached=1&file=$2_Cached_waterfall.png last;
        rewrite ^/results/old/([a-zA-Z0-9_]+)/([0-9]+)_optimization_thumb.png$ /thumbnail.php?test=$1&run=$2&file=$2_optimization.png last;
        rewrite ^/results/old/([a-zA-Z0-9_]+)/([0-9]+)_Cached_optimization_thumb.png$ /thumbnail.php?test=$1&run=$2&cached=1&file=$2_Cached_optimization.png last;
        rewrite ^/results/old/([a-zA-Z0-9_]+)/([0-9]+)_waterfall_thumb.gif$ /thumbnail.php?test=$1&run=$2&file=$2_waterfall.gif last;
        rewrite ^/results/old/([a-zA-Z0-9_]+)/([0-9]+)_Cached_waterfall_thumb.gif$ /thumbnail.php?test=$1&run=$2&cached=1&file=$2_Cached_waterfall.gif last;
        rewrite ^/results/old/([a-zA-Z0-9_]+)/([0-9]+)_optimization_thumb.gif$ /thumbnail.php?test=$1&run=$2&file=$2_optimization.gif last;
        rewrite ^/results/old/([a-zA-Z0-9_]+)/([0-9]+)_Cached_optimization_thumb.gif$ /thumbnail.php?test=$1&run=$2&cached=1&file=$2_Cached_optimization.gif last;

        # waterfalls
        rewrite ^/results/old/([a-zA-Z0-9_]+)/([0-9]+)_waterfall.png$ /waterfall.php?test=$1&run=$2 last;
        rewrite ^/results/old/([a-zA-Z0-9_]+)/([0-9]+)_Cached_waterfall.png$ /waterfall.php?test=$1&run=$2&cached=1 last;
        rewrite ^/results/old/([a-zA-Z0-9_]+)/([0-9]+)_waterfall.gif$ /waterfall.php?test=$1&run=$2 last;
        rewrite ^/results/old/([a-zA-Z0-9_]+)/([0-9]+)_Cached_waterfall.gif$ /waterfall.php?test=$1&run=$2&cached=1 last;
        rewrite ^/results/([0-9][0-9])/([0-9][0-9])/([0-9][0-9])/([a-zA-Z0-9_]+)/([0-9]+)_waterfall.png$ /waterfall.php?test=$1$2$3_$4&run=$5 last;
        rewrite ^/results/([0-9][0-9])/([0-9][0-9])/([0-9][0-9])/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([0-9]+)_waterfall.png$ /waterfall.php?test=$1$2$3_$4_$5&run=$6 last;
        rewrite ^/results/([0-9][0-9])/([0-9][0-9])/([0-9][0-9])/([a-zA-Z0-9_]+)/([0-9]+)_Cached_waterfall.png$ /waterfall.php?test=$1$2$3_$4&run=$5&cached=1 last;
        rewrite ^/results/([0-9][0-9])/([0-9][0-9])/([0-9][0-9])/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([0-9]+)_Cached_waterfall.png$ /waterfall.php?test=$1$2$3_$4_$5&run=$6&cached=1 last;
        rewrite ^/results/([0-9][0-9])/([0-9][0-9])/([0-9][0-9])/([a-zA-Z0-9_]+)/([0-9]+)_connection.png$ /waterfall.php?test=$1$2$3_$4&run=$5&type=connection last;
        rewrite ^/results/([0-9][0-9])/([0-9][0-9])/([0-9][0-9])/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([0-9]+)_connection.png$ /waterfall.php?test=$1$2$3_$4_$5&run=$6&type=connection last;
        rewrite ^/results/([0-9][0-9])/([0-9][0-9])/([0-9][0-9])/([a-zA-Z0-9_]+)/([0-9]+)_Cached_connection.png$ /waterfall.php?test=$1$2$3_$4&run=$5&cached=1&type=connection last;
        rewrite ^/results/([0-9][0-9])/([0-9][0-9])/([0-9][0-9])/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([0-9]+)_Cached_connection.png$ /waterfall.php?test=$1$2$3_$4_$5&run=$6&cached=1&type=connection last;

        # optimization checklists
        rewrite ^/results/old/([a-zA-Z0-9_]+)/([0-9]+)_optimization.png$ /optimizationChecklist.php?test=$1&run=$2 last;
        rewrite ^/results/old/([a-zA-Z0-9_]+)/([0-9]+)_Cached_optimization.png$ /optimizationChecklist.php?test=$1&run=$2&cached=1 last;
        rewrite ^/results/old/([a-zA-Z0-9_]+)/([0-9]+)_optimization.gif$ /optimizationChecklist.php?test=$1&run=$2 last;
        rewrite ^/results/old/([a-zA-Z0-9_]+)/([0-9]+)_Cached_optimization.gif$ /optimizationChecklist.php?test=$1&run=$2&cached=1 last;
        rewrite ^/results/([0-9][0-9])/([0-9][0-9])/([0-9][0-9])/([a-zA-Z0-9_]+)/([0-9]+)_optimization.png$ /optimizationChecklist.php?test=$1$2$3_$4&run=$5 last;
        rewrite ^/results/([0-9][0-9])/([0-9][0-9])/([0-9][0-9])/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([0-9]+)_optimization.png$ /optimizationChecklist.php?test=$1$2$3_$4_$5&run=$6 last;
        rewrite ^/results/([0-9][0-9])/([0-9][0-9])/([0-9][0-9])/([a-zA-Z0-9_]+)/([0-9]+)_Cached_optimization.png$ /optimizationChecklist.php?test=$1$2$3_$4&run=$5&cached=1 last;
        rewrite ^/results/([0-9][0-9])/([0-9][0-9])/([0-9][0-9])/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([0-9]+)_Cached_optimization.png$ /optimizationChecklist.php?test=$1$2$3_$4_$5&run=$6&cached=1 last;

        #location cookie dropping
        rewrite ^/loc/([a-zA-Z0-9_]+)$ /util/setloc.php?location=$1 last;
        rewrite ^/loc/([a-zA-Z0-9_]+)$/ /util/setloc.php?location=$1 last;

        #gzip compressed text result files
        rewrite ^/results/([0-9][0-9])/([0-9][0-9])/([0-9][0-9])/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+).(txt|csv)$ /gettext.php?test=$1$2$3_$4&file=$5.$6 last;
        rewrite ^/results/([0-9][0-9])/([0-9][0-9])/([0-9][0-9])/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+).(txt|csv)$ /gettext.php?test=$1$2$3_$4_$5&file=$6.$7 last;

        #tcpdump capture files
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+).cap$ /getgzip.php?test=$1&file=$2.cap last;
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)_Cached.cap$ /getgzip.php?test=$1&file=$2_Cached.cap last;

        #page speed
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)_pagespeed.txt$ /getgzip.php?test=$1&file=$2_pagespeed.txt last;
        rewrite ^/result/([a-zA-Z0-9_]+)/([0-9]+)_Cached_pagespeed.txt$ /getgzip.php?test=$1&file=$2_Cached_pagespeed.txt last;

        #embeddable video widget
        rewrite ^/video/embed/([a-zA-Z0-9_]+)$ /video/view.php?embed=1&id=$1 last;
        
        #widgets
        rewrite ^/widgets/pagespeed/tree$ /widgets/pagespeed/tree.php last;

        #old pages that were eliminated in the UI rewrite
        rewrite ^/test$ / permanent;

        #wiki
        rewrite ^/docs/(.*)$ http://www.webperformancecentral.com/wiki/WebPagetest/$1 permanent;
        rewrite ^/docs$ http://www.webperformancecentral.com/wiki/WebPagetest permanent;

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
                fastcgi_pass   127.0.0.1:9000;
                #fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  /var/www/webpagetest.org$fastcgi_script_name;
                fastcgi_param  HTTP_MOD_REWRITE On;
                include fastcgi_params;
        }

        # static files
        location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
            expires max;
            log_not_found off;
        }