[code]
server {
listen 94.23.96.82:80;
server_name gimpuj.info www.gimpuj.info
gimpuj.org www.gimpuj.org
gimpuj.net www.gimpuj.net;
if ($host != www.gimpuj.info)
{
rewrite ^(.*)$ http://www.gimpuj.info$1 permanent;
}
access_log /var/www/vhosts/gimpuj.info/statistics/logs/access_log combined buffer=32k;
location = / {
rewrite / index.php?action=glowna permanent;
}
location / {
index index.html index.php;
root /var/www/vhosts/gimpuj.info/httpdocs;
include php_support;
if ( !-e $request_filename ) {
# rewrites
rewrite ^/avatar/(.*)\.png /avatar/index.php?user=$1 last;
....
some rewrites
....
rewrite ^/index\.php/(.*) /index.php?$1;
# end rewrites
}
}
# PLESK statistics below
location ^~ /plesk-stat/ {
autoindex on;
alias /var/www/vhosts/gimpuj.info/statistics/;
}
# End of PLESK statistics
include settings;
}
[/code]
every domain is built with such config template
php_support
[code]
#php support
if ( $request_filename ~* \.php(.*)$ ) { # is it php?
fastcgi_pass 127.0.0.1:9000;
expires off;
}
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
[/code]
settings
[code]
#limit conns for ddos and slowloris
limit_conn limit_per_ip 25;
#errors
error_page 404 /errors_pages/404.html;
location ^~ /errors_pages {
alias /var/www/errors_pages;
}
#Phpmyadmin
location ^~ /phpmyadmin {
index index.php;
root /usr/share;
include php_support2;
}
#xcache-admin
location ^~ /xcache-admin {
index index.php;
alias /usr/share/xcache/admin;
#root /usr/share/xcache/admin;
include php_support2;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
# AW-Stat Icons
location ^~ /awstats-icon/ {
alias /usr/share/awstats/icon/;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
location ~ /\.ht {
deny all;
}
[/code]
php_support2 is same as php_support but passes queries only to local PHP.
Here you have it. As I said nothing special here.
>Using if() on $request_uri/$request_filename suggests that config
>should be rewritten, but anyway nginx shouldn't coredump.
Why? I know that if is in rewrite module in docs but can't we use it in other places?
Do you suggest to use nested location rather than if() in that case? But still (and dont yell) - it worked before.