

![]() | Start a set with this search |
![]() | Include this search in one of my sets |
![]() | Exclude this search from one of my sets |
![]() | Permalink to these results Paste this link in email or IM: |
| Atom feed for tracking future search results Paste this URL into your reader: |
8 messages in ru.sysoev.nginxRe: if ,-f and variables| From | Sent On | Attachments |
|---|---|---|
| Sean Allen | Feb 27, 2008 8:26 am | |
| Igor Sysoev | Feb 27, 2008 8:41 am | |
| Roxis | Feb 27, 2008 8:42 am | |
| Sean Allen | Feb 27, 2008 9:33 am | |
| Roxis | Feb 27, 2008 11:31 am | |
| Igor Sysoev | Feb 27, 2008 11:33 am | |
| Sean Allen | Feb 27, 2008 2:11 pm | |
| Igor Sysoev | Feb 28, 2008 3:22 am |

![]() | Permalink for this message Paste this link in email or IM: |
![]() | Permalink for this thread Paste this link in email or IM: |
| Atom feed for this thread Paste this URL into your reader: |
| Subject: | Re: if ,-f and variables | Actions... |
|---|---|---|
| From: | Igor Sysoev (is-G...@public.gmane.org) | |
| Date: | Feb 27, 2008 11:33:47 am | |
| List: | ru.sysoev.nginx | |
On Wed, Feb 27, 2008 at 12:34:08PM -0500, Sean Allen wrote:
On Feb 27, 2008, at 11:42 AM, Roxis wrote:
On Wednesday 27 February 2008, Sean Allen wrote:
this works:
if ( -f /ah/sites/colon365.co.uk/public/.maintenance ) { set $maintenance 1; }
this doesn't:
if ( -f $document_root/.maintenance ) { set $maintenance 1; }
two questions,
1. is there a way to make the latter work? some slight change or tweak? 2. why doesn't it work? are variables not interpolated when doing file system checks like -f?
it should work. probably you have wrong root or root in wrong place. plz provide full config
One thing i just noticed. root is defined until after that snippet above. is that an issue?
Config is spread across multiple files.
Here is the best bits:
/ah/sites/colon365.co.uk/conf/nginx.conf:
server { listen 208.113.69.210; server_name colon365.co.uk; server_name www.colon365.co.uk;
include /ah/sites/colon365.co.uk/conf/nginx/base; include /ah/sites/colon365.co.uk/conf/nginx/maintenance; include /ah/sites/colon365.co.uk/conf/nginx/fake-homepage;
access_log /var/log/ah/colon365.co.uk.log combined; include /ah/conf/nginx/www-shared; }
--
/ah/sites/colon365.co.uk/conf/nginx/base:
set $base /ah/sites/colon365.co.uk;
--
/ah/conf/nginx/www-shared:
include /ah/conf/nginx/root; include /ah/conf/nginx/favicon; include /ah/conf/nginx/standard-expire; include /ah/conf/nginx/unsub-aliases; include /ah/conf/nginx/hackersafe; include /ah/conf/nginx/historical; location / { if ( !-e $request_filename ) { expires -1; proxy_pass http://mod_perl; break; } }
--
/ah/conf/nginx/root:
set $root $base/public; root $root;
The "root" directive may be set in eny place of http, server, or locacation: it will be properly set or inherited:
http {
server { location / { # here root is /path } }
root /path; }
But this is not true for "set" directives: they are executed in order of thier apperance.
include /ah/sites/colon365.co.uk/conf/nginx/base; set $base /ah/sites/colon365.co.uk;
include /ah/sites/colon365.co.uk/conf/nginx/maintenance;
using $document_root, here it is "root ''", because $root is still undefined
include /ah/conf/nginx/www-shared; include /ah/conf/nginx/root; set $root $base/public; root $root;
You should to set "set $root $base/public;" early.
-- Igor Sysoev http://sysoev.ru/en/







