| # nginx_system_test.sh makes a few substitutions to pagespeed_test.conf.template |
| # file to generate @@TEST_TMP@@/pagespeed_test.conf |
| |
| # The cache flush test depends on worker_processes=1. |
| worker_processes 1; |
| |
| daemon @@DAEMON@@; |
| master_process on; |
| |
| error_log "@@ERROR_LOG@@" debug; |
| pid "@@TEST_TMP@@/nginx.pid"; |
| |
| events { |
| worker_connections 1024; |
| } |
| |
| |
| http { |
| server_names_hash_bucket_size 128; |
| |
| log_format cache '$time_local ' |
| '$upstream_cache_status ' |
| '$http_host $request ($status) ' |
| '"$http_user_agent"'; |
| access_log "@@ACCESS_LOG@@" cache; |
| |
| # Don't put entries in the error log for 403s and 404s. |
| log_not_found off; |
| |
| proxy_cache_path "@@PROXY_CACHE@@" levels=1:2 keys_zone=htmlcache:60m inactive=90m max_size=50m; |
| proxy_temp_path "@@TMP_PROXY_CACHE@@"; |
| |
| pagespeed ProcessScriptVariables on; |
| pagespeed StatisticsPath /ngx_pagespeed_statistics; |
| pagespeed GlobalStatisticsPath /ngx_pagespeed_global_statistics; |
| pagespeed ConsolePath /pagespeed_console; |
| pagespeed MessagesPath /ngx_pagespeed_message; |
| pagespeed AdminPath /pagespeed_admin; |
| pagespeed GlobalAdminPath /pagespeed_global_admin; |
| |
| pagespeed StaticAssetPrefix /pagespeed_custom_static/; |
| |
| pagespeed MessageBufferSize 200000; |
| # Increase the default fetcher timeout to resolve sporadic flakeyness when |
| # the native fetcher uses 8.8.8.8 to resolve. |
| pagespeed FetcherTimeoutMs 10000; |
| pagespeed NativeFetcherMaxKeepaliveRequests 50; |
| |
| root "@@SERVER_ROOT@@"; |
| |
| # Block 5a: Decide on Cache-Control header value to use for outgoing |
| # response. |
| # Map new_cache_control_header_val to "no-cache, max-age=0" if the |
| # content is html and use the original Cache-Control header value |
| # in all other cases. |
| map $upstream_http_content_type $new_cache_control_header_val { |
| default $upstream_http_cache_control; |
| "~*text/html" "no-cache, max-age=0"; |
| } |
| |
| pagespeed UsePerVHostStatistics on; |
| pagespeed InPlaceResourceOptimization on; |
| pagespeed CreateSharedMemoryMetadataCache "@@SHM_CACHE@@" 8192; |
| pagespeed BlockingRewriteKey psatest; |
| |
| # CriticalImagesBeaconEnabled is now on by default, but we disable in testing. |
| # With this option enabled, the inline image system test will currently fail. |
| # When critical image beaconing is enabled, only critical images are inlined. |
| # In our current system test, we aren't yet sending a beacon to identify the |
| # critical images to be inlined, so we just disable the option here. |
| pagespeed CriticalImagesBeaconEnabled false; |
| |
| # By default, resources will not be used for inlining without explicit |
| # authorization. Supported values are off or a comma-separated list of strings |
| # from {Script,Stylesheet}. |
| pagespeed InlineResourcesWithoutExplicitAuthorization off; |
| |
| pagespeed Statistics on; |
| pagespeed StatisticsLogging on; |
| pagespeed LogDir "@@TEST_TMP@@/logdir"; |
| |
| server { |
| # Sets up a logical home-page server on |
| # max-cacheable-content-length.example.com. This server is only used to |
| # test ModPagespeedMaxCacheableContentLength, i.e., |
| # max_cacheable_response_content_length. |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name max-cacheable-content-length.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| |
| pagespeed RewriteLevel PassThrough; |
| pagespeed EnableFilters rewrite_javascript; |
| pagespeed MaxCacheableContentLength 85; |
| } |
| |
| pagespeed UseNativeFetcher "@@NATIVE_FETCHER@@"; |
| @@RESOLVER@@ |
| |
| server { |
| # Block 1: Basic port, server_name definitions. |
| # This server represents the external caching layer server which |
| # receives user requests and proxies them to the upstream server |
| # running on the PRIMARY_PORT when the response is not available in |
| # the cache. It also services purge requests from the upstream server. |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name proxy_cache.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| # Disable PageSpeed on this server. |
| pagespeed off; |
| |
| # Block 2: Define prefix for proxy_cache_key based on the UserAgent. |
| |
| # Define placeholder PS-CapabilityList header values for large and small |
| # screens with no UA dependent optimizations. Note that these placeholder |
| # values should not contain any of ll, ii, dj, jw or ws, since these |
| # codes will end up representing optimizations to be supported for the |
| # request. |
| set $default_ps_capability_list_for_large_screens "LargeScreen.SkipUADependentOptimizations"; |
| set $default_ps_capability_list_for_small_screens "TinyScreen.SkipUADependentOptimizations"; |
| |
| # As a fallback, the PS-CapabilityList header that is sent to the upstream |
| # PageSpeed server should be for a large screen device with no browser |
| # specific optimizations. |
| set $ps_capability_list $default_ps_capability_list_for_large_screens; |
| |
| # Cache-fragment 1: Desktop User-Agents that support lazyload_images (ll), |
| # inline_images (ii) and defer_javascript (dj). |
| # Note: Wget is added for testing purposes only. |
| if ($http_user_agent ~* "Chrome/|Firefox/|MSIE |Safari|Wget") { |
| set $ps_capability_list "ll,ii,dj:"; |
| } |
| # Cache-fragment 2: Desktop User-Agents that support lazyload_images (ll), |
| # inline_images (ii), defer_javascript (dj), webp (jw) and lossless_webp |
| # (ws). |
| if ($http_user_agent ~* |
| "Chrome/[2][3-9]+\.|Chrome/[[3-9][0-9]+\.|Chrome/[0-9]{3,}\.") { |
| set $ps_capability_list "ll,ii,dj,jw,ws:"; |
| } |
| # Cache-fragment 3: This fragment contains (a) Desktop User-Agents that |
| # match fragments 1 or 2 but should not because they represent older |
| # versions of certain browsers or bots and (b) Tablet User-Agents that |
| # correspond to large screens. These will only get optimizations that work |
| # on all browsers and use image compression qualities applicable to large |
| # screens. Note that even Tablets that are capable of supporting inline or |
| # webp images, e.g. Android 4.1.2, will not get these advanced |
| # optimizations. |
| if ($http_user_agent ~* "Firefox/[1-2]\.|MSIE [5-8]\.|bot|Yahoo!|Ruby|RPT-HTTPClient|(Google \(\+https\:\/\/developers\.google\.com\/\+\/web\/snippet\/\))|Android|iPad|TouchPad|Silk-Accelerated|Kindle Fire") { |
| set $ps_capability_list $default_ps_capability_list_for_large_screens; |
| } |
| # Cache-fragment 4: Mobiles and small screen Tablets will use image compression |
| # qualities applicable to small screens, but all other optimizations will be |
| # those that work on all browsers. |
| if ($http_user_agent ~* "Mozilla.*Android.*Mobile*|iPhone|BlackBerry|Opera Mobi|Opera Mini|SymbianOS|UP.Browser|J-PHONE|Profile/MIDP|portalmmm|DoCoMo|Obigo|Galaxy Nexus|GT-I9300|GT-N7100|HTC One|Nexus [4|7|S]|Xoom|XT907") { |
| set $ps_capability_list $default_ps_capability_list_for_small_screens; |
| } |
| |
| # Block 3a: Bypass the cache for .pagespeed. resource. PageSpeed has its own |
| # cache for these, and these could bloat up the caching layer. |
| if ($uri ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+") { |
| set $bypass_cache "1"; |
| } |
| |
| # For testing purposes, we never generate values that will result in a beacon |
| # unless a test request it via "X-Allow-Beacon: yes" in its request header. |
| # This is for testing purposes, note that in a production environment, |
| # you want 'set_random $rand 0 100;' unconditionally! |
| set $rand 5; |
| |
| if ($http_x_allow_beacon ~ "yes") { |
| set_random $rand 0 100; |
| } |
| set $should_beacon_header_val ""; |
| if ($rand ~* "^[0-4]$") { |
| set $should_beacon_header_val "random_rebeaconing_key"; |
| set $bypass_cache 1; |
| } |
| |
| # Block 3b: Only cache responses to clients that support gzip. Most clients |
| # do, and the cache holds much more if it stores gzipped responses. |
| if ($http_accept_encoding !~* gzip) { |
| set $bypass_cache "1"; |
| } |
| |
| # Block 4: Location block for purge requests. |
| location ~ /purge(/.*) { |
| allow 127.0.0.1; |
| allow ::1; |
| deny all; |
| proxy_cache_purge htmlcache $ps_capability_list$1$is_args$args; |
| } |
| |
| # Block 6: Location block with proxy_cache directives. |
| location /mod_pagespeed_test/cachable_rewritten_html/ { |
| # 1: Upstream PageSpeed server is running at localhost:8050. |
| proxy_pass http://localhost:@@PRIMARY_PORT@@; |
| # 2: Use htmlcache as the zone for caching. |
| proxy_cache htmlcache; |
| # 3: Bypass requests that correspond to .pagespeed. resources |
| # or clients that do not support gzip etc. |
| proxy_cache_bypass $bypass_cache; |
| # 4: Use the redefined proxy_cache_key and make sure the /purge/ |
| # block uses the same key. |
| proxy_cache_key $ps_capability_list$uri$is_args$args; |
| # 5: Forward Host header to upstream server. |
| proxy_set_header Host $host; |
| # 6: Set the PS-CapabilityList header for PageSpeed server to respect. |
| proxy_set_header PS-CapabilityList $ps_capability_list; |
| add_header PS-CapabilityList $ps_capability_list; |
| # 7: Add a header for identifying cache hits/misses/expires. This is |
| # for debugging purposes only and can be commented out in production. |
| add_header X-Cache $upstream_cache_status; |
| |
| # Block 5b: Override Cache-Control headers as needed. |
| # Hide the upstream cache control header. |
| proxy_hide_header Cache-Control; |
| # Add the inferred Cache-Control header. |
| add_header Cache-Control $new_cache_control_header_val; |
| |
| proxy_set_header PS-ShouldBeacon $should_beacon_header_val; |
| proxy_hide_header PS-ShouldBeacon; |
| } |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name if-in-server.example.com; |
| pagespeed FileCachePath "@@SECONDARY_CACHE@@"; |
| |
| pagespeed RewriteLevel PassThrough; |
| set $inline_javascript "No"; |
| |
| if ($http_x_custom_header_inline_js) { |
| # TODO(jefftk): Turn on NGX_HTTP_SIF_CONF and figure out how to get |
| # pagespeed directives inside of a server location block to be respected, |
| # then uncomment the following line and duplicate the if-in-location test |
| # for if-in-server. |
| #pagespeed EnableFilters inline_javascript; |
| set $inline_javascript "Yes"; |
| } |
| |
| add_header "X-Inline-Javascript" $inline_javascript; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name if-in-location.example.com; |
| pagespeed FileCachePath "@@SECONDARY_CACHE@@"; |
| |
| |
| location / { |
| set $inline_javascript "No"; |
| pagespeed RewriteLevel PassThrough; |
| |
| if ($http_x_custom_header_inline_js) { |
| pagespeed EnableFilters inline_javascript; |
| set $inline_javascript "Yes"; |
| } |
| |
| add_header "X-Inline-Javascript" $inline_javascript; |
| } |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name secondary.example.com; |
| pagespeed FileCachePath "@@SECONDARY_CACHE@@"; |
| |
| pagespeed MapProxyDomain secondary.example.com/gstatic_images |
| http://www.gstatic.com/psa/static; |
| } |
| |
| # These three vhosts are for testing the experiment framework (Furious). |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name experiment.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| pagespeed InPlaceResourceOptimization off; |
| |
| pagespeed RunExperiment on; |
| pagespeed AnalyticsID "123-45-6734"; |
| pagespeed UseAnalyticsJs false; |
| pagespeed ExperimentVariable 2; |
| pagespeed ExperimentSpec |
| "id=7;enable=recompress_images;disable=convert_jpeg_to_progressive;percent=50"; |
| pagespeed ExperimentSpec "id=2;enable=recompress_images;percent=50"; |
| pagespeed ExperimentSpec "id=3;default;percent=0"; |
| } |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name contentexperiment.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| pagespeed InPlaceResourceOptimization off; |
| |
| pagespeed RunExperiment on; |
| pagespeed AnalyticsID "123-45-6734"; |
| pagespeed UseAnalyticsJs false; |
| pagespeed ExperimentVariable 2; |
| pagespeed ExperimentSpec |
| "id=7;enable=recompress_images;disable=convert_jpeg_to_progressive;percent=50;options=ContentExperimentID=ID:H1BpS2TCRFmJzZgjwyeBHQ,ContentExperimentVariantID=111"; |
| pagespeed ExperimentSpec |
| "id=2;enable=recompress_images;percent=50;options=ContentExperimentID=ID:H1BpS2TCRFmJzZgjwyeBHQ,ContentExperimentVariantID=222"; |
| pagespeed ExperimentSpec |
| "id=3;default;percent=0;options=ContentExperimentID=123,ContentExperimentVariantID=333"; |
| } |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name experiment.noga.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| pagespeed RunExperiment on; |
| pagespeed ExperimentVariable 2; |
| pagespeed ExperimentSpec |
| "id=7;enable=recompress_images;disable=convert_jpeg_to_progressive;percent=50"; |
| pagespeed ExperimentSpec "id=2;enable=recompress_images;percent=50"; |
| pagespeed ExperimentSpec "id=3;default;percent=0"; |
| } |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name experiment.devicematch.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| pagespeed RunExperiment on; |
| pagespeed ExperimentSpec |
| "id=1;percent=100;matches_device_type=mobile;enable=recompress_images"; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name preserveurls.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| pagespeed EnableFilters inline_preview_images,lazyload_images; |
| pagespeed EnableFilters resize_mobile_images,rewrite_images,sprite_images; |
| pagespeed EnableFilters fallback_rewrite_css_urls,flatten_css_imports; |
| pagespeed EnableFilters inline_css,move_css_above_scripts,move_css_to_head; |
| pagespeed EnableFilters outline_css,rewrite_css,combine_css; |
| pagespeed EnableFilters combine_javascript,defer_javascript; |
| pagespeed EnableFilters inline_javascript; |
| pagespeed EnableFilters outline_javascript,rewrite_javascript; |
| |
| location /mod_pagespeed_test/preserveurls/on/ { |
| pagespeed JsPreserveURLs On; |
| pagespeed ImagePreserveURLs On; |
| pagespeed CssPreserveURLs On; |
| } |
| |
| location /mod_pagespeed_test/preserveurls/off/ { |
| pagespeed JsPreserveURLs Off; |
| pagespeed ImagePreserveURLs Off; |
| pagespeed CssPreserveURLs Off; |
| } |
| } |
| |
| server { |
| # Setup a vhost with the critical image beacon and lazyload filter enabled |
| # to make sure that critical images are not lazyloaded. |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name imagebeacon.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| pagespeed RewriteLevel PassThrough; |
| pagespeed EnableFilters lazyload_images; |
| pagespeed CriticalImagesBeaconEnabled true; |
| } |
| |
| server { |
| # Setup a vhost with the critical image beacon enabled to make sure that |
| # downstream caches and rebeaconing interact correctly. |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name downstreamcacherebeacon.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| pagespeed RewriteLevel PassThrough; |
| pagespeed CriticalImagesBeaconEnabled true; |
| # Enable the downstream caching feature and specify a rebeaconing key. |
| pagespeed DownstreamCachePurgeLocationPrefix "http://localhost:@@SECONDARY_PORT@@/purge"; |
| pagespeed DownstreamCacheRebeaconingKey random_rebeaconing_key; |
| location ~ .*[.]html { |
| add_header Cache-Control "private, max-age=3000"; |
| } |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name downstreamcacheresource.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| pagespeed RewriteLevel PassThrough; |
| pagespeed EnableFilters rewrite_images; |
| pagespeed DownstreamCachePurgeLocationPrefix "http://localhost:@@SECONDARY_PORT@@/purge"; |
| } |
| |
| # Set up a reverse proxy (rproxy.) and origin (origin.) as vhosts for |
| # showing that we can configure PageSpeed via response headers. |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name rproxy.rmcomments.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| pagespeed RewriteLevel PassThrough; |
| pagespeed DisableFilters add_instrumentation,remove_comments; |
| |
| # Note that we don't enable remove_comments here; that setting comes from |
| # the response headers from origin.rmcomments.example.com |
| location / { |
| proxy_pass http://127.0.0.1:@@SECONDARY_PORT@@/; |
| proxy_set_header "Host" "origin.rmcomments.example.com"; |
| } |
| } |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name origin.rmcomments.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| pagespeed off; |
| location / { |
| add_header PageSpeedFilters remove_comments; |
| } |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name renderedimagebeacon.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| pagespeed RewriteLevel PassThrough; |
| pagespeed EnableFilters resize_rendered_image_dimensions; |
| pagespeed CriticalImagesBeaconEnabled true; |
| } |
| |
| |
| # Build a configuration hierarchy where at the root we have turned on |
| # OptimizeForBandwidth, and in various subdirectories we override settings |
| # to make them more aggressive. |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name optimizeforbandwidth.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| pagespeed RewriteLevel OptimizeForBandwidth; |
| pagespeed DisableFilters add_instrumentation; |
| |
| location /mod_pagespeed_test/optimize_for_bandwidth/inline_css { |
| pagespeed EnableFilters inline_css; |
| } |
| location /mod_pagespeed_test/optimize_for_bandwidth/css_urls { |
| pagespeed CssPreserveURLs off; |
| } |
| location /mod_pagespeed_test/optimize_for_bandwidth/image_urls { |
| pagespeed ImagePreserveURLs off; |
| } |
| location /mod_pagespeed_test/optimize_for_bandwidth/core_filters { |
| pagespeed RewriteLevel CoreFilters; |
| } |
| } |
| |
| server { |
| # For testing with a custom origin header. In this VirtualHost, |
| # /mod_pagespeed_test is included in our DocumentRoot and thus does |
| # not need to be in any resource URL paths. This helps us verify that |
| # we are looping back to the corect VirtualHost -- if we hit the wrong |
| # one it will not work. Also we don't have a VirtualHost for |
| # sharedcdn.example.com, so the default Host header used for |
| # origin-mapping won't work either. Instead, we want origin-fetches |
| # to go back to this VirtualHost so we rely on the new third optional |
| # argument to MapOriginDomain. |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name customhostheader.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@_test"; |
| root "@@SERVER_ROOT@@/mod_pagespeed_test"; |
| |
| pagespeed on; |
| pagespeed RewriteLevel PassThrough; |
| pagespeed EnableFilters rewrite_images; |
| # Don't use localhost, as ngx_pagespeed's native fetcher cannot resolve it |
| pagespeed MapOriginDomain 127.0.0.1:@@SECONDARY_PORT@@/customhostheader |
| sharedcdn.example.com/test customhostheader.example.com; |
| pagespeed JpegRecompressionQuality 50; |
| pagespeed CriticalImagesBeaconEnabled false; |
| } |
| |
| server { |
| # Sets up a virtual host where we can specify forbidden filters without |
| # affecting any other hosts. |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name forbidden.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| |
| # Start with all core filters enabled ... |
| pagespeed RewriteLevel CoreFilters; |
| # ... then forbid these filters ... |
| pagespeed ForbidFilters remove_quotes,remove_comments,collapse_whitespace; |
| pagespeed ForbidFilters rewrite_css,resize_images; |
| # ... and disable but not forbid this one (to ensure we retain its URL). |
| pagespeed DisableFilters inline_css; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name unauthorizedresources.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| pagespeed RewriteLevel PassThrough; |
| pagespeed InlineResourcesWithoutExplicitAuthorization Script,Stylesheet; |
| pagespeed CssInlineMaxBytes 1000000; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name client-domain-rewrite.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| # Don't actually try to rewrite any resources; the ones in |
| # rewrite_domains.html don't actually exist. |
| pagespeed RewriteLevel PassThrough; |
| |
| pagespeed MapRewriteDomain http://client-domain-rewrite.example.com |
| http://src.example.com; |
| pagespeed ClientDomainRewrite true; |
| pagespeed EnableFilters rewrite_domains; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name url-attribute.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| # Don't actually try to rewrite any resources; the ones in |
| # rewrite_domains.html don't actually exist. |
| pagespeed RewriteLevel PassThrough; |
| |
| # This is used for testing dynamically defined url-valued |
| # attributes |
| pagespeed UrlValuedAttribute span src Hyperlink; |
| pagespeed UrlValuedAttribute hr imgsrc Image; |
| pagespeed DomainRewriteHyperlinks on; |
| pagespeed MapRewriteDomain http://dst.example.com http://src.example.com; |
| pagespeed EnableFilters rewrite_domains; |
| pagespeed UrlValuedAttribute custom a Image; |
| pagespeed UrlValuedAttribute custom b otherResource; |
| pagespeed UrlValuedAttribute custom c hyperlink; |
| pagespeed UrlValuedAttribute img alt-src Image; |
| pagespeed UrlValuedAttribute video alt-a Image; |
| pagespeed UrlValuedAttribute video alt-b Image; |
| |
| # Also test that we can redefine spec-defined attributes. |
| pagespeed UrlValuedAttribute blockquote cite Image; |
| } |
| |
| server { |
| listen 127.0.0.2:@@SECONDARY_PORT@@; |
| server_name loopbackfetch.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name domain-hyperlinks-on.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| # Don't actually try to rewrite any resources; the ones in |
| # rewrite_domains.html don't actually exist. |
| pagespeed RewriteLevel PassThrough; |
| |
| pagespeed DomainRewriteHyperlinks on; |
| pagespeed MapRewriteDomain http://dst.example.com http://src.example.com; |
| pagespeed EnableFilters rewrite_domains; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name domain-hyperlinks-off.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| # Don't actually try to rewrite any resources; the ones in |
| # rewrite_domains.html don't actually exist. |
| pagespeed RewriteLevel PassThrough; |
| |
| pagespeed DomainRewriteHyperlinks off; |
| pagespeed MapRewriteDomain http://dst.example.com http://src.example.com; |
| pagespeed EnableFilters rewrite_domains; |
| } |
| |
| server { |
| # Test host for shared memory cache. |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name shmcache.example.com; |
| pagespeed FileCachePath "@@SHM_CACHE@@"; |
| |
| pagespeed RewriteLevel PassThrough; |
| pagespeed EnableFilters rewrite_images; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name xfp.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| pagespeed RespectXForwardedProto on; |
| |
| location /redirecting_origin { |
| pagespeed off; |
| # Hack: we clear the response headers using headers_more. |
| # If we don't, nginx will add an extra empty Location: headers here. |
| # It is kind of hard to get nginx to generate a relative location header |
| # that starts with "/". |
| more_clear_headers 'Location'; |
| add_header Location /mod_pagespeed_example; |
| return 301; |
| } |
| location /redirect { |
| proxy_method GET; |
| proxy_pass http://127.0.0.1:@@SECONDARY_PORT@@/redirecting_origin; |
| proxy_set_header "Host" "xfp.example.com"; |
| } |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name xheader.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| pagespeed XHeaderValue "UNSPECIFIED VERSION"; |
| } |
| |
| # Support for embedded configurations, where image flags in the |
| # VirtualHost serving HTML is not the same as the one serving resources, |
| # and thus we must embed the image flags in the rewritten image URLs. |
| # |
| # Note that we test with two distinct caches. |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name embed-config-html.example.org; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| root "@@SERVER_ROOT@@/mod_pagespeed_test"; |
| |
| pagespeed AddOptionsToUrls on; |
| pagespeed JpegRecompressionQuality 73; |
| pagespeed DisableFilters inline_css,extend_cache,inline_javascript; |
| pagespeed Domain embed-config-resources.example.com; |
| |
| # Share a cache keyspace with embed-config-resources.example.com. |
| pagespeed CacheFragment "embed-config"; |
| |
| pagespeed LoadFromFile "http://embed-config-resources.example.com/" |
| "@@SERVER_ROOT@@/mod_pagespeed_example/"; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name embed-config-resources.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| root "@@SERVER_ROOT@@/mod_pagespeed_example"; |
| |
| pagespeed AddOptionsToUrls on; |
| |
| # Note that we do not set the jpeg quality here, but take |
| # it from image URL query parameters that we synthesize in |
| # from embed-config-html.example.org. |
| |
| # Share a cache keyspace with embed-config-html.example.org. |
| pagespeed CacheFragment "embed-config"; |
| |
| pagespeed LoadFromFile "http://embed-config-resources.example.com/" |
| "@@SERVER_ROOT@@/mod_pagespeed_example/"; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name ipro-for-browser.example.com; |
| root "@@SERVER_ROOT@@/mod_pagespeed_example"; |
| pagespeed EnableFilters rewrite_images,rewrite_css; |
| pagespeed EnableFilters convert_to_webp_lossless; |
| pagespeed EnableFilters in_place_optimize_for_browser; |
| pagespeed InPlaceResourceOptimization on; |
| pagespeed FileCachePath "@@IPRO_CACHE@@"; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name respectvary.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| pagespeed RespectVary on; |
| add_header Vary User-Agent; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name cache_a.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| pagespeed CacheFlushPollIntervalSec 1; |
| pagespeed RewriteLevel PassThrough; |
| pagespeed EnableFilters inline_css; |
| |
| # Make a non-empty subdirectory config to make sure that |
| # cache.flush updates get transmitted to nested configurations. |
| # |
| # TODO(jmarantz): This test currently fails on ngx_pagespeed, meaning we |
| # don't handle cache flushing correctly here. Uncomment the config below to |
| # expose the error. |
| #location /mod_pagespeed_test/cache_flush/ { |
| # pagespeed RewriteLevel PassThrough; |
| # pagespeed EnableFilters inline_css; |
| # pagespeed DisableFilters add_instrumentation; |
| #} |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name cache_b.example.com; |
| pagespeed FileCachePath "@@SECONDARY_CACHE@@"; |
| |
| pagespeed CacheFlushPollIntervalSec 1; |
| pagespeed RewriteLevel PassThrough; |
| pagespeed EnableFilters inline_css; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name cache_c.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| pagespeed CacheFlushFilename "othercache.flush"; |
| pagespeed CacheFlushPollIntervalSec 1; |
| pagespeed RewriteLevel PassThrough; |
| pagespeed EnableFilters inline_css; |
| } |
| |
| # The next three server blocks are for a cdn test. |
| server { |
| # Sets up a logical home-page server on www.example.com |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name www.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| pagespeed LoadFromFile http://cdn.example.com @@SERVER_ROOT@@; |
| pagespeed MapRewriteDomain cdn.example.com origin.example.com; |
| pagespeed RewriteLevel PassThrough; |
| pagespeed EnableFilters rewrite_css,rewrite_images; |
| pagespeed CacheFragment "example"; |
| } |
| server { |
| # Sets up a logical origin for CDNs to fetch content from, on |
| # origin.example.com. |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name origin.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| pagespeed LoadFromFile http://cdn.example.com @@SERVER_ROOT@@; |
| pagespeed MapRewriteDomain cdn.example.com origin.example.com; |
| pagespeed RewriteLevel PassThrough; |
| pagespeed EnableFilters rewrite_css,rewrite_images; |
| pagespeed CacheFragment "example"; |
| } |
| server { |
| # Sets up a logical cdn, which is where we tell browsers to fetch resources |
| # from. |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name cdn.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| pagespeed LoadFromFile http://cdn.example.com @@SERVER_ROOT@@; |
| pagespeed MapRewriteDomain cdn.example.com origin.example.com; |
| pagespeed RewriteLevel PassThrough; |
| pagespeed EnableFilters rewrite_css,rewrite_images; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name lff-ipro.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| pagespeed LoadFromFile |
| "http://lff-ipro.example.com/mod_pagespeed_example/lff_ipro" |
| "@@SERVER_ROOT@@/mod_pagespeed_example/lff_ipro"; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name tryfiles.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { } |
| location ~ "^/ngx_pagespeed_static/" { } |
| location ~ "^/ngx_pagespeed_beacon$" { } |
| |
| try_files $uri $uri/ /mod_pagespeed_example/index.html; |
| } |
| |
| server { |
| # Proxy modpagespeed.com for testing Issue 582. |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name modpagespeed.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| pagespeed off; |
| |
| location / { |
| proxy_pass http://modpagespeed.com; |
| } |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name custom-paths.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| pagespeed StatisticsPath /custom_pagespeed_statistics; |
| pagespeed ConsolePath /custom_pagespeed_console; |
| pagespeed MessagesPath /custom_pagespeed_message; |
| pagespeed AdminPath /custom_pagespeed_admin; |
| |
| pagespeed StatisticsDomains Allow *; |
| pagespeed GlobalStatisticsDomains Allow *; |
| pagespeed MessagesDomains Allow *; |
| pagespeed ConsoleDomains Allow *; |
| pagespeed AdminDomains Allow *; |
| pagespeed GlobalAdminDomains Allow *; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name inherit-paths.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| pagespeed StatisticsDomains Allow *; |
| pagespeed GlobalStatisticsDomains Allow *; |
| pagespeed MessagesDomains Allow *; |
| pagespeed ConsoleDomains Allow *; |
| pagespeed AdminDomains Allow *; |
| pagespeed GlobalAdminDomains Allow *; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name blocking.example.com; |
| pagespeed FileCachePath "@@SECONDARY_CACHE@@"; |
| |
| pagespeed RewriteLevel PassThrough; |
| pagespeed EnableFilters rewrite_images; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name keepalive-html.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| pagespeed RewriteLevel CoreFilters; |
| error_log "@@TEST_TMP@@/keepalive-html.example.com.error.log" warn; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name keepalive-resource.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| error_log "@@TEST_TMP@@/keepalive-resource.example.com.error.log" warn; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name keepalive-beacon-get.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| error_log "@@TEST_TMP@@/keepalive-beacon-get.example.com.error.log" warn; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name keepalive-beacon-post.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| error_log "@@TEST_TMP@@/keepalive-beacon-post.example.com.error.log" warn; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name keepalive-static.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| error_log "@@TEST_TMP@@/keepalive-static.example.com.error.log" warn; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name response-header-filters.example.com; |
| pagespeed FileCachePath "@@SECONDARY_CACHE@@"; |
| pagespeed RewriteLevel PassThrough; |
| pagespeed on; |
| location / { |
| proxy_pass http://localhost:@@SECONDARY_PORT@@; |
| proxy_set_header Host "enable-filter-header-origin.example.com"; |
| } |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name response-header-disable.example.com; |
| pagespeed FileCachePath "@@SECONDARY_CACHE@@"; |
| pagespeed EnableFilters add_instrumentation; |
| pagespeed on; |
| location / { |
| proxy_pass http://localhost:@@SECONDARY_PORT@@; |
| proxy_set_header Host "pagespeed-off-header-origin.example.com"; |
| } |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name headers.example.com; |
| pagespeed InPlaceRewriteDeadlineMs -1; |
| pagespeed FileCachePath "@@SECONDARY_CACHE@@"; |
| pagespeed LoadFromFile "http://headers.example.com/" |
| "@@SERVER_ROOT@@/"; |
| location /mod_pagespeed_test/ { |
| more_set_headers "Server: override"; |
| more_set_headers -s '404' 'Cache-Control: override'; |
| } |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name ipro.example.com; |
| pagespeed FileCachePath "@@SECONDARY_CACHE@@"; |
| |
| pagespeed on; |
| pagespeed InPlaceResourceOptimization on; |
| |
| location /mod_pagespeed_test/ipro/nocache/test_image_dont_reuse.png { |
| add_header Cache-Control no-cache; |
| } |
| |
| location /mod_pagespeed_test/ipro/no-cache-control-header { |
| add_header Cache-Control ""; |
| pagespeed ImplicitCacheTtlMs 333000; |
| } |
| } |
| |
| # Test hosts to cover all possible cache configurations. L1 will be filecache |
| # or memcache depending on the setting of MEMCACHED_TEST. These four hosts |
| # are for the four settings for the L2 cache. |
| |
| # 1. L2_d=LRU, L2_m=LRU |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name lrud-lrum.example.com; |
| pagespeed FileCachePath "@@SECONDARY_CACHE@@_lrud_lrum"; |
| |
| pagespeed LRUCacheKbPerProcess 1024; |
| pagespeed LRUCacheByteLimit 2000; |
| pagespeed EnableFilters rewrite_images; |
| pagespeed CriticalImagesBeaconEnabled false; |
| } |
| |
| # 2. L2_d=LRU, L2_m=SHM |
| pagespeed CreateSharedMemoryMetadataCache |
| "@@SECONDARY_CACHE@@_lrud_shmm" 8192; |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name lrud-shmm.example.com; |
| pagespeed FileCachePath "@@SECONDARY_CACHE@@_lrud_shmm"; |
| |
| pagespeed LRUCacheKbPerProcess 1024; |
| pagespeed LRUCacheByteLimit 2000; |
| pagespeed EnableFilters rewrite_images; |
| pagespeed CriticalImagesBeaconEnabled false; |
| } |
| |
| # 3. L2_d=none, L2_m=SHM |
| pagespeed CreateSharedMemoryMetadataCache |
| "@@SECONDARY_CACHE@@_noned_shmm" 8192; |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name noned-shmm.example.com; |
| pagespeed FileCachePath "@@SECONDARY_CACHE@@_noned_shmm"; |
| |
| pagespeed EnableFilters rewrite_images; |
| pagespeed CriticalImagesBeaconEnabled false; |
| } |
| |
| # 4. L2_d=none, L2_m=none |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name noned-nonem.example.com; |
| pagespeed FileCachePath "@@SECONDARY_CACHE@@_noned_nonem"; |
| |
| pagespeed EnableFilters rewrite_images; |
| pagespeed CriticalImagesBeaconEnabled false; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name date.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| add_header "Date" "Fri, 16 Oct 2009 23:05:07 GMT"; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name options-by-cookies-enabled.example.com; |
| pagespeed FileCachePath "@@SECONDARY_CACHE@@_optionsbycookieson"; |
| pagespeed AllowOptionsToBeSetByCookies true; |
| pagespeed StickyQueryParameters sticky_secret; |
| pagespeed RewriteLevel PassThrough; |
| pagespeed EnableFilters collapse_whitespace; |
| pagespeed DisableFilters remove_comments,add_instrumentation; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name options-by-cookies-disabled.example.com; |
| pagespeed FileCachePath "@@SECONDARY_CACHE@@_optionsbycookiesoff"; |
| pagespeed AllowOptionsToBeSetByCookies false; |
| pagespeed DisableFilters add_instrumentation; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name redirect.example.com; |
| pagespeed FileCachePath "@@SECONDARY_CACHE@@_redirected"; |
| pagespeed RewriteLevel PassThrough; |
| pagespeed EnableFilters add_instrumentation,collapse_whitespace; |
| location /redirect { |
| rewrite ^/redirect/(.*) http://$server_name/$1 permanent; |
| } |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name request-option-override.example.com; |
| pagespeed FileCachePath "@@SECONDARY_CACHE@@"; |
| pagespeed RequestOptionOverride abc; |
| pagespeed RewriteLevel Passthrough; |
| pagespeed EnableFilters collapse_whitespace; |
| pagespeed DisableFilters remove_comments,add_instrumentation; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name signed-urls.example.com; |
| pagespeed FileCachePath "@@SECONDARY_CACHE@@"; |
| pagespeed UrlSigningKey helloworld; |
| pagespeed RewriteLevel Passthrough; |
| pagespeed EnableFilters collapse_whitespace,rewrite_images; |
| pagespeed DisableFilters remove_comments,add_instrumentation; |
| } |
| |
| # For testing signed URLs, ignoring signature validity. |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name signed-urls-transition.example.com; |
| pagespeed FileCachePath "@@SECONDARY_CACHE@@"; |
| pagespeed UrlSigningKey helloworld; |
| pagespeed AcceptInvalidSignatures true; |
| pagespeed RewriteLevel Passthrough; |
| pagespeed EnableFilters collapse_whitespace,rewrite_images; |
| pagespeed DisableFilters remove_comments,add_instrumentation; |
| } |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name unsigned-urls-transition.example.com; |
| pagespeed FileCachePath "@@SECONDARY_CACHE@@"; |
| # This server will not sign URLs, but AcceptInvalidSignature is on. |
| pagespeed AcceptInvalidSignatures true; |
| pagespeed RewriteLevel Passthrough; |
| pagespeed EnableFilters collapse_whitespace,rewrite_images; |
| pagespeed DisableFilters remove_comments,add_instrumentation; |
| } |
| |
| # Start remote config servers. |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name remote-config.example.com; |
| pagespeed FileCachePath "@@SECONDARY_CACHE@@"; |
| pagespeed RemoteConfigurationUrl "http://127.0.0.1:@@RCPORT1@@/remote.cfg"; |
| pagespeed RemoteConfigurationTimeoutMs 1500; |
| } |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name remote-config-partially-invalid.example.com; |
| pagespeed FileCachePath "@@SECONDARY_CACHE@@"; |
| pagespeed RemoteConfigurationUrl "http://127.0.0.1:@@RCPORT2@@/remote.cfg"; |
| pagespeed RemoteConfigurationTimeoutMs 1500; |
| } |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name remote-config-invalid.example.com; |
| pagespeed FileCachePath "@@SECONDARY_CACHE@@"; |
| pagespeed RemoteConfigurationUrl "http://127.0.0.1:@@RCPORT3@@/remote.cfg"; |
| pagespeed RemoteConfigurationTimeoutMs 1500; |
| } |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name remote-config-failed-fetch.example.com; |
| pagespeed FileCachePath "@@SECONDARY_CACHE@@"; |
| pagespeed RemoteConfigurationUrl "http://127.0.0.1:@@RCPORT5@@/remote.cfg"; |
| pagespeed RemoteConfigurationTimeoutMs 1500; |
| } |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name remote-config-slow-fetch.example.com; |
| pagespeed FileCachePath "@@SECONDARY_CACHE@@"; |
| pagespeed RemoteConfigurationUrl "http://127.0.0.1:@@RCPORT6@@/remote.cfg"; |
| pagespeed RemoteConfigurationTimeoutMs 1500; |
| } |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name remote-config-experiment.example.com; |
| pagespeed FileCachePath "@@SECONDARY_CACHE@@"; |
| pagespeed RemoteConfigurationUrl "http://127.0.0.1:@@RCPORT7@@/remote.cfg"; |
| pagespeed RemoteConfigurationTimeoutMs 1500; |
| } |
| |
| # Test that pagespeed is disabled when sendfile headers are present. |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name uses-sendfile.example.com; |
| pagespeed FileCachePath "@@SECONDARY_CACHE@@"; |
| pagespeed EnableFilters inline_javascript,rewrite_javascript; |
| add_header 'X-Sendfile' 'blablabla'; |
| } |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name doesnt-sendfile.example.com; |
| pagespeed FileCachePath "@@SECONDARY_CACHE@@"; |
| pagespeed EnableFilters inline_javascript,rewrite_javascript; |
| } |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name uses-xaccelredirect.example.com; |
| pagespeed FileCachePath "@@SECONDARY_CACHE@@"; |
| pagespeed EnableFilters inline_javascript,rewrite_javascript; |
| add_header 'X-Accel-Redirect' 'blablabla'; |
| } |
| |
| # Proxy + IPRO a gzip'd file for testing Issue 896. |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name ipro-proxy.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@_ipro_proxy"; |
| |
| pagespeed on; |
| pagespeed InPlaceResourceOptimization on; |
| pagespeed EnableFilters rewrite_domains; |
| |
| location / { |
| proxy_pass |
| "http://localhost:@@PRIMARY_PORT@@/mod_pagespeed_test/ipro/mod_deflate/"; |
| } |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name compressed-css.example.com; |
| pagespeed on; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| pagespeed InPlaceResourceOptimization on; |
| } |
| |
| # nested gzip config: pagespeed gzip on/off |
| server { |
| pagespeed on; |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name gzip-test1.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| location /mod_pagespeed_example/ { |
| pagespeed gzip off; |
| } |
| location /mod_pagespeed_example/styles/ { |
| pagespeed gzip on; |
| } |
| } |
| |
| # nested gzip config: pagespeed on/off |
| server { |
| pagespeed on; |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name gzip-test2.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| location /mod_pagespeed_example/ { |
| pagespeed off; |
| } |
| location /mod_pagespeed_example/styles/ { |
| pagespeed on; |
| } |
| } |
| |
| server { |
| pagespeed on; |
| pagespeed EnableFilters add_instrumentation; |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name proxy-post.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| location / { |
| # Transform the POST to a GET request for the origin, |
| # as nginx's static handler doesn't allow POST requests. |
| proxy_method GET; |
| proxy_pass http://127.0.0.1:@@SECONDARY_PORT@@/; |
| proxy_set_header "Host" "proxy-post-origin.example.com"; |
| } |
| } |
| |
| server { |
| pagespeed off; |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name proxy-post-origin.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| root "@@SERVER_ROOT@@"; |
| } |
| |
| server { |
| # Write all post data to temp files |
| client_body_in_file_only clean; |
| pagespeed CriticalImagesBeaconEnabled true; |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name beacon-post-temp-file.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name script-filters.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| root "@@SERVER_ROOT@@"; |
| set $filters ""; |
| set $domain_shards "cdn1.example.com,cdn2.example.com"; |
| if ($http_X_Script) { |
| set $filters "add_instrumentation"; |
| set $domain_shards ""; |
| } |
| pagespeed RewriteLevel PassThrough; |
| pagespeed EnableFilters rewrite_domains; |
| pagespeed EnableFilters $filters; |
| pagespeed ShardDomain script-filters.example.com "$domain_shards"; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name purge.example.com; |
| |
| # Test purging individual URLs without flushing the entire metadata cache. |
| pagespeed EnableCachePurge on; |
| |
| pagespeed PurgeMethod PURGE; |
| root "@@SERVER_ROOT@@/mod_pagespeed_test/purge"; |
| pagespeed FileCachePath "@@FILE_CACHE@@_purge"; |
| pagespeed DisableFilters add_instrumentation; |
| pagespeed RewriteLevel PassThrough; |
| pagespeed EnableFilters rewrite_css; |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name psoff-dir-on.example.com; |
| |
| # Test purging individual URLs without flushing the entire metadata cache. |
| pagespeed EnableCachePurge on; |
| |
| pagespeed PurgeMethod PURGE; |
| root "@@SERVER_ROOT@@/mod_pagespeed_test/purge"; |
| pagespeed FileCachePath "@@FILE_CACHE@@_dir_on"; |
| pagespeed DisableFilters add_instrumentation; |
| pagespeed RewriteLevel PassThrough; |
| pagespeed EnableFilters rewrite_css; |
| pagespeed off; |
| location / { |
| pagespeed on; |
| } |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name cc-header-origin.example.com; |
| pagespeed InPlaceResourceOptimization off; |
| pagespeed off; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| root "@@SERVER_ROOT@@"; |
| location /mod_pagespeed_test/nostore { |
| add_header "Cache-Control" "max-age=12345"; |
| add_header "Cache-Control" "public, no-store"; |
| add_header "Cache-Control" "max-age=14"; |
| } |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name enable-filter-header-origin.example.com; |
| pagespeed InPlaceResourceOptimization off; |
| pagespeed off; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| root "@@SERVER_ROOT@@"; |
| location / { |
| add_header "PageSpeedFilters" "add_instrumentation"; |
| } |
| } |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name pagespeed-off-header-origin.example.com; |
| pagespeed InPlaceResourceOptimization off; |
| pagespeed off; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| root "@@SERVER_ROOT@@"; |
| location / { |
| add_header "PageSpeed" "off"; |
| } |
| } |
| |
| pagespeed MessagesDomains Allow messages-allowed.example.com; |
| pagespeed MessagesDomains Allow cleared-inherited.example.com; |
| pagespeed MessagesDomains Allow cleared-inherited-reallowed.example.com; |
| pagespeed MessagesDomains Allow more-messages-allowed.example.com; |
| pagespeed MessagesDomains Allow anything-*-wildcard.example.com; |
| pagespeed MessagesDomains Allow localhost; |
| |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name messages-allowed.example.com |
| messages-not-allowed.example.com |
| more-messages-allowed.example.com |
| anything-a-wildcard.example.com |
| anything-b-wildcard.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| } |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name messages-still-not-allowed.example.com |
| but-this-message-allowed.example.com |
| and-this-one.example.com; |
| pagespeed MessagesDomains Allow but-this-message-allowed.example.com; |
| pagespeed MessagesDomains Allow and-this-one.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| } |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name cleared-inherited.example.com |
| cleared-inherited-reallowed.example.com |
| messages-allowed-at-vhost.example.com |
| messages-not-allowed-at-vhost.example.com |
| anything-c-wildcard.example.com; |
| pagespeed MessagesDomains Disallow *; |
| pagespeed MessagesDomains Allow cleared-inherited-reallowed.example.com; |
| pagespeed MessagesDomains Allow messages-allowed-at-vhost.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| } |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name cleared-inherited-unlisted.example.com; |
| pagespeed MessagesDomains Allow *; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| } |
| server { |
| server_name nothing-allowed.example.com; |
| pagespeed MessagesDomains Disallow *; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| } |
| server { |
| server_name nothing-explicitly-allowed.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| } |
| server { |
| listen @@SECONDARY_PORT@@; |
| listen [::]:@@SECONDARY_PORT@@; |
| server_name everything-explicitly-allowed.example.com |
| everything-explicitly-allowed-but-aliased.example.com; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| pagespeed StatisticsDomains Allow everything-explicitly-allowed.example.com; |
| pagespeed GlobalStatisticsDomains |
| Allow everything-explicitly-allowed.example.com; |
| pagespeed MessagesDomains Allow everything-explicitly-allowed.example.com; |
| pagespeed ConsoleDomains Allow everything-explicitly-allowed.example.com; |
| pagespeed AdminDomains Allow everything-explicitly-allowed.example.com; |
| pagespeed GlobalAdminDomains |
| Allow everything-explicitly-allowed.example.com; |
| } |
| |
| server { |
| listen @@PRIMARY_PORT@@; |
| listen [::]:@@PRIMARY_PORT@@; |
| server_name localhost; |
| pagespeed FileCachePath "@@FILE_CACHE@@"; |
| |
| location ~ ^/pagespeed_admin { |
| allow 127.0.0.1; |
| allow ::1; |
| deny all; |
| } |
| |
| location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { |
| add_header "" ""; |
| } |
| |
| # Backend for ipro-proxy.example.com |
| location /mod_pagespeed_test/ipro/mod_deflate/ { |
| pagespeed off; |
| } |
| |
| location /mod_pagespeed_test/cachable_rewritten_html/ { |
| # This location has the html files that will be configured to be stored |
| # in the proxy_cache layer. |
| pagespeed DownstreamCachePurgeMethod "GET"; |
| pagespeed DownstreamCachePurgeLocationPrefix "http://localhost:@@SECONDARY_PORT@@/purge"; |
| pagespeed DownstreamCacheRebeaconingKey "random_rebeaconing_key"; |
| # We use a very small deadline here to force the rewriting to not complete |
| # in the very first attempt. |
| pagespeed RewriteDeadlinePerFlushMs 1; |
| pagespeed RewriteLevel PassThrough; |
| pagespeed EnableFilters collapse_whitespace,extend_cache,recompress_images; |
| pagespeed CriticalImagesBeaconEnabled true; |
| add_header Cache-Control "public, max-age=100"; |
| } |
| |
| location /mod_pagespeed_test/disable_no_transform/index.html { |
| pagespeed DisableRewriteOnNoTransform off; |
| } |
| |
| location /mod_pagespeed_test/disable_no_transform/disable_no_transform.css { |
| add_header 'Cache-Control' 'no-transform'; |
| } |
| |
| location /mod_pagespeed_test/no_transform { |
| add_header 'Cache-Control' 'no-transform'; |
| } |
| |
| # uncomment the following two lines if you're testing memcached |
| #pagespeed MemcachedServers "localhost:11211"; |
| #pagespeed MemcachedThreads 1; |
| |
| pagespeed on; |
| |
| #pagespeed CacheFlushPollIntervalSec 1; |
| |
| #pagespeed RunExperiment on; |
| #pagespeed AnalyticsID "UA-XXXXXXXX-Y"; |
| #pagespeed ExperimentSpec "id=1;percent=50;default"; |
| #pagespeed ExperimentSpec "id=2;percent=50"; |
| |
| pagespeed Library 43 1o978_K0_LNE5_ystNklf |
| http://www.modpagespeed.com/rewrite_javascript.js; |
| pagespeed RetainComment " google_ad_section*"; |
| |
| # Test proxying of non-.pagespeed. resources. |
| pagespeed MapProxyDomain http://localhost:@@PRIMARY_PORT@@/modpagespeed_http |
| http://@@PAGESPEED_TEST_HOST@@/do_not_modify; |
| pagespeed MapProxyDomain http://localhost:@@PRIMARY_PORT@@/content_type_present |
| http://@@PAGESPEED_TEST_HOST@@:8091; |
| pagespeed MapProxyDomain http://localhost:@@PRIMARY_PORT@@/content_type_absent |
| http://@@PAGESPEED_TEST_HOST@@:8092; |
| |
| add_header X-Extra-Header 1; |
| |
| # Establish a proxy mapping where the current server proxies an image |
| # stored on ref.pssdemos.com. |
| pagespeed MapProxyDomain localhost:@@PRIMARY_PORT@@/gstatic_images |
| http://www.gstatic.com/psa/static; |
| |
| location /ngx_pagespeed_statistics { |
| allow 127.0.0.1; |
| allow ::1; |
| deny all; |
| } |
| |
| location /ngx_pagespeed_message { |
| allow 127.0.0.1; |
| allow ::1; |
| deny all; |
| } |
| |
| pagespeed Domain modpagespeed.com:1023; |
| # As opposed to mod_pagespeed, our default for aris is 'on' |
| pagespeed AvoidRenamingIntrospectiveJavascript off; |
| |
| location /mod_pagespeed_test/nostore { |
| proxy_pass http://localhost:@@SECONDARY_PORT@@; |
| proxy_set_header Host "cc-header-origin.example.com"; |
| } |
| |
| location /mod_pagespeed_test/forbid_all_disabled/disabled { |
| # Prevent the enabling of these filters for files in this directory |
| # -and- all subdirectories. |
| # |
| # Apache checks here that they can't be renabled with .htaccess, but |
| # that's not how Nginx location blocks work. |
| pagespeed ForbidAllDisabledFilters true; |
| pagespeed DisableFilters remove_quotes,remove_comments; |
| pagespeed DisableFilters collapse_whitespace; |
| } |
| |
| location /mod_pagespeed_test/max_html_parse_size { |
| pagespeed MaxHtmlParseBytes 5000; |
| } |
| |
| location ~ \.php$ { |
| fastcgi_param SCRIPT_FILENAME $request_filename; |
| fastcgi_param QUERY_STRING $query_string; |
| fastcgi_param REQUEST_METHOD $request_method; |
| fastcgi_param CONTENT_TYPE $content_type; |
| fastcgi_param CONTENT_LENGTH $content_length; |
| fastcgi_pass 127.0.0.1:9000; |
| } |
| |
| location /mod_pagespeed_example/core_filters/ { |
| pagespeed RewriteLevel CoreFilters; |
| } |
| |
| location /mod_pagespeed_example/pass_through/ { |
| pagespeed RewriteLevel PassThrough; |
| } |
| |
| #location / { |
| # proxy_pass http://www.google.com; |
| #} |
| |
| location /mod_pagespeed_test/ssi/ { |
| ssi on; |
| |
| pagespeed EnableFilters collapse_whitespace,remove_comments,combine_css; |
| pagespeed DisableFilters add_instrumentation; |
| pagespeed DisableFilters inline_css; |
| } |
| |
| location /mod_pagespeed_test/no_cache/ { |
| add_header Cache-Control no-cache; |
| } |
| |
| location /mod_pagespeed_test/compressed/ { |
| add_header Content-Encoding gzip; |
| |
| # Even though this is also in the server block it must be repeated here |
| # because add_header directives are only inherited if you don't define |
| # more of them. See: http://serverfault.com/questions/400197 |
| add_header X-Extra-Header 1; |
| |
| types { |
| text/javascript custom_ext; |
| } |
| } |
| |
| location /mod_pagespeed_test/shard/ { |
| pagespeed ShardDomain "localhost:@@PRIMARY_PORT@@" shard1,shard2; |
| pagespeed RewriteLevel PassThrough; |
| pagespeed EnableFilters extend_cache; |
| } |
| |
| location /mod_pagespeed_test/retain_cache_control/ { |
| pagespeed ModifyCachingHeaders off; |
| add_header Cache-Control "private, max-age=3000"; |
| } |
| |
| location /mod_pagespeed_test/retain_cache_control_with_downstream_caching/ { |
| pagespeed ModifyCachingHeaders on; |
| pagespeed DownstreamCachePurgeLocationPrefix "http://localhost:8020/"; |
| add_header Cache-Control "private, max-age=3000"; |
| } |
| |
| location /mod_pagespeed_test/avoid_renaming_introspective_javascript__on/ { |
| pagespeed AvoidRenamingIntrospectiveJavascript on; |
| } |
| |
| location /mod_pagespeed_test/custom_options/ { |
| pagespeed DisableFilters convert_jpeg_to_progressive; |
| } |
| |
| location /mod_pagespeed_test/ipro/test_image_dont_reuse.png { |
| expires 5m; |
| } |
| |
| location /mod_pagespeed_test/ipro/wait/ { |
| # TODO(jmarantz): ModPagespeedInPlaceWaitForOptimized should be superfluous, |
| # or made equivalent to ModPagespeedInPlaceRewriteDeadlineMs -1, which waits |
| # forever. Otherwise ModPagespeedInPlaceRewriteDeadlineMs should just have |
| # the specified deadline. |
| # # See https://github.com/pagespeed/mod_pagespeed/issues/1171 for more |
| # detailed discussion. |
| pagespeed InPlaceWaitForOptimized on; |
| } |
| |
| location /mod_pagespeed_test/ipro/wait/long/ { |
| # Make the deadline long here for valgrind tests. We could |
| # conditionalize this. |
| pagespeed InPlaceRewriteDeadlineMs 10000; |
| } |
| |
| location /mod_pagespeed_test/ipro/wait/short/ { |
| pagespeed EnableFilters in_place_optimize_for_browser; |
| |
| # Make the deadline short here as we expect to always miss it |
| # in tests. |
| pagespeed InPlaceRewriteDeadlineMs 1; |
| } |
| |
| location /mod_pagespeed_test/ipro/instant/wait/ { |
| pagespeed InPlaceWaitForOptimized on; |
| |
| # TODO(jefftk): When running with valgrind we need to raise the rewrite |
| # deadline or else we get "Deadline exceeded for rewrite of resource". |
| # I had thought InPlaceWaitForOptimized was supposed to disable the |
| # rewrite deadline, but it seems not to. |
| # |
| # InPlaceWaitForOptimized is definitely doing something, though: when I |
| # remove the InPlaceRewriteDeadlineMs line below and run without valgrind, |
| # purple.css is optimized via ipro on the first request but if I set |
| # InPlaceWaitForOptimized to off then it is not. |
| pagespeed InPlaceRewriteDeadlineMs 1000; |
| } |
| |
| location /mod_pagespeed_test/ipro/instant/deadline/ { |
| pagespeed InPlaceRewriteDeadlineMs -1; |
| } |
| |
| # Test to make sure that user-authenticated resources do not get cached and |
| # optimized. |
| location /mod_pagespeed_test/auth/ { |
| auth_basic "Restricted"; |
| auth_basic_user_file "@@SERVER_ROOT@@mod_pagespeed_test/auth/passwd.conf"; |
| } |
| |
| location /mod_pagespeed_test/ipro/cookie/ { |
| # Add Vary:Cookie. This should prevent us from optimizing the |
| # vary_cookie.css even though PagespeedRespectVary is off. |
| # test/nginx_system_test.sh does the fetches test with and w/o cookies. |
| add_header Vary Cookie; |
| pagespeed RespectVary off; |
| pagespeed InPlaceWaitForOptimized on; |
| } |
| |
| location /mod_pagespeed_test/ipro/cookie2/ { |
| # Add Vary:Cookie2. This should prevent us from optimizing the |
| # vary_cookie2.css even though PagespeedRespectVary is off. |
| # test/nginx_system_test.sh does the fetches test with and w/o cookie2. |
| add_header Vary Cookie2; |
| pagespeed RespectVary off; |
| pagespeed InPlaceWaitForOptimized on; |
| } |
| |
| location /mod_pagespeed_test/vary/ { |
| pagespeed RespectVary on; |
| } |
| |
| location ~ /mod_pagespeed_test/vary/\.(js|css)$ { |
| add_header Vary User-Agent; |
| } |
| |
| location /mod_pagespeed_test/vary/no_respect/ { |
| pagespeed DisableFilters add_instrumentation,inline_css; |
| pagespeed RespectVary off; |
| } |
| |
| location /mod_pagespeed_test/experimental_js_minifier/ { |
| pagespeed UseExperimentalJsMinifier on; |
| } |
| |
| pagespeed FetchHttps enable; |
| location /mod_pagespeed_test/https_fetch/ { |
| pagespeed DisableFilters inline_images; |
| pagespeed MapProxyDomain |
| http://localhost:@@PRIMARY_PORT@@/https_gstatic_dot_com |
| https://www.gstatic.com/psa/static; |
| } |
| |
| # $host implicitly tests script variable support. I'd love to test it more |
| # directly, but so far this is the best I've come up with and duplicating |
| # the test doesn't seem to make sense. |
| pagespeed LoadFromFile |
| "http://$host:@@PRIMARY_PORT@@/mod_pagespeed_test/ipro/instant/" |
| "@@SERVER_ROOT@@/mod_pagespeed_test/ipro/instant/"; |
| |
| pagespeed EnableFilters remove_comments; |
| |
| # Test LoadFromFile mapping by mapping one dir to another. |
| pagespeed LoadFromFile |
| "http://localhost:@@PRIMARY_PORT@@/mod_pagespeed_test/load_from_file/web_dir/" |
| "@@SERVER_ROOT@@/mod_pagespeed_test/load_from_file/file_dir/"; |
| pagespeed LoadFromFileMatch |
| "^http://localhost:@@PRIMARY_PORT@@/mod_pagespeed_test/load_from_file_match/web_([^/]*)/" |
| "@@SERVER_ROOT@@/mod_pagespeed_test/load_from_file/file_\1/"; |
| pagespeed LoadFromFileRule Disallow |
| "@@SERVER_ROOT@@/mod_pagespeed_test/load_from_file/file_dir/httponly/"; |
| pagespeed LoadFromFileRuleMatch Disallow \.ssp.css$ps_dollar; |
| pagespeed LoadFromFileRuleMatch Allow exception\.ssp\.css$ps_dollar; |
| |
| #charset koi8-r; |
| |
| #access_log logs/host.access.log main; |
| |
| index index.html; |
| |
| |
| #error_page 404 /404.html; |
| |
| # redirect server error pages to the static page /50x.html |
| # |
| error_page 500 502 503 504 /50x.html; |
| location = /50x.html { |
| root html; |
| } |
| } |
| |
| sendfile on; |
| |
| keepalive_timeout 65; |
| |
| types { |
| text/html html htm shtml; |
| text/css css; |
| text/xml xml; |
| image/gif gif; |
| image/jpeg jpeg jpg; |
| application/x-javascript js; |
| application/atom+xml atom; |
| application/rss+xml rss; |
| |
| text/mathml mml; |
| text/plain txt; |
| text/vnd.sun.j2me.app-descriptor jad; |
| text/vnd.wap.wml wml; |
| text/x-component htc; |
| |
| image/png png; |
| image/tiff tif tiff; |
| image/vnd.wap.wbmp wbmp; |
| image/x-icon ico; |
| image/x-jng jng; |
| image/x-ms-bmp bmp; |
| image/svg+xml svg svgz; |
| image/webp webp; |
| |
| application/java-archive jar war ear; |
| application/mac-binhex40 hqx; |
| application/msword doc; |
| application/pdf pdf; |
| application/postscript ps eps ai; |
| application/rtf rtf; |
| application/vnd.ms-excel xls; |
| application/vnd.ms-powerpoint ppt; |
| application/vnd.wap.wmlc wmlc; |
| application/vnd.google-earth.kml+xml kml; |
| application/vnd.google-earth.kmz kmz; |
| application/x-7z-compressed 7z; |
| application/x-cocoa cco; |
| application/x-java-archive-diff jardiff; |
| application/x-java-jnlp-file jnlp; |
| application/x-makeself run; |
| application/x-perl pl pm; |
| application/x-pilot prc pdb; |
| application/x-rar-compressed rar; |
| application/x-redhat-package-manager rpm; |
| application/x-sea sea; |
| application/x-shockwave-flash swf; |
| application/x-stuffit sit; |
| application/x-tcl tcl tk; |
| application/x-x509-ca-cert der pem crt; |
| application/x-xpinstall xpi; |
| application/xhtml+xml xhtml; |
| application/zip zip; |
| |
| application/octet-stream bin exe dll; |
| application/octet-stream deb; |
| application/octet-stream dmg; |
| application/octet-stream eot; |
| application/octet-stream iso img; |
| application/octet-stream msi msp msm; |
| |
| audio/midi mid midi kar; |
| audio/mpeg mp3; |
| audio/ogg ogg; |
| audio/x-m4a m4a; |
| audio/x-realaudio ra; |
| |
| video/3gpp 3gpp 3gp; |
| video/mp4 mp4; |
| video/mpeg mpeg mpg; |
| video/quicktime mov; |
| video/webm webm; |
| video/x-flv flv; |
| video/x-m4v m4v; |
| video/x-mng mng; |
| video/x-ms-asf asx asf; |
| video/x-ms-wmv wmv; |
| video/x-msvideo avi; |
| } |
| default_type application/octet-stream; |
| |
| } |