View Single Post
  #57  
Old 07-22-2011, 07:33 AM
Osbes Osbes is offline
 
Join Date: Jul 2008
Posts: 106
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hi giorgino,

the commenly wrong assumption when working with nginx is, that every matching location directives will executed. Nginx will in general execute only one location directive.

Quote:

To summarize, the order in which directives are checked is as follows:

Directives with the "=" prefix that match the query exactly. If found, searching stops.
All remaining directives with conventional strings. If this match used the "^~" prefix, searching stops.
Regular expressions, in the order they are defined in the configuration file.
If #3 yielded a match, that result is used. Otherwise, the match from #2 is used.
So if your nginx configuration looks like (http://www.axivo.com/community/threa...letin-3.123/):

Code:
location / {
    try_files        $uri $uri/ @vbseo;
}

location @vbseo {
    fastcgi_pass        127.0.0.1:9000;
    fastcgi_param        SCRIPT_FILENAME    $document_root/vbseo.php;
    fastcgi_param        QUERY_STRING    vbseourl=$request_uri;
    include            fastcgi_params;
    internal;
}

location ~ \.(jpg|jpeg|png|gif|ico) {
    add_header        Cache-Control public;
    add_header        Cache-Control must-revalidate;
    expires           7d;
    access_log        off;
}
and you want to access an vbseo rewrite attachment url like http://www.propit.it/attachments/f66...-.4.09-005.jpg the executed location directive will be

Code:
location ~ \.(jpg|jpeg|png|gif|ico) {
    add_header        Cache-Control public;
    add_header        Cache-Control must-revalidate;
    expires           7d;
    access_log        off;
}
Since this doenst call vbseo.php the url will not resolve in the correct attachment url and you get an 404 http error.


So you could either extend your nginx configuration to always use try_files and then call vbseo.php as fallback, or you disable the rewrite of attachments with vbseo.

On our Forum we disabled this rewrite, cause the gain of this is - for us - lower than the gain of performance, since using try_files for every file isnt that good.

Best regards
Sebastian
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05181 seconds
  • Memory Usage 1,768KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_code
  • (1)bbcode_quote
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete