Virtual hosts
Maxim Dounin
mdounin at mdounin.ru
Fri Jun 26 16:57:04 MSD 2009
Hello!
On Fri, Jun 26, 2009 at 05:23:28AM -0700, merlin corey wrote:
> Hello,
>
> You can use variables to set paths and such and then include files
> with similar directives that may have replacements. Not every
> directive supports variables, but many do. Redundant is not a bad
Variables are evaluated at runtime *for every request*. Dont do
that just to shorten configs.
Maxim Dounin
> thing, because actually it is far from complex - it is quite simple!
> This is a good thing. Making a single server handle every virtual
> host is much more complex and not nearly as efficient (nor flexible).
>
> I recommend trying include directive, as you can easily put the error
> page directives for example in there verbatim and save you a line.
> Another way to save a line with the error page directives is to give
> each host actual files in their document roots to correspond to the
> error pages, then you don't need to specify a location and root
> anymore PLUS your users get the benefit of custom error pages.
>
> -- Merlin
> - EN"
>
> Remove label "NginX - EN"
>
> Report spam
>
> Delete
>
> Move to
>
>
> Labels
>
>
> More actions
>
> ‹ Newer 7 of 471 Older ›
> On Fri, Jun 26, 2009 at 2:38 AM, Joel Dahl<joel.dahl at vnode.se> wrote:
> > Hi,
> >
> > I use the following line in nginx.conf to serve websites for a bunch of
> > virtual hosts:
> >
> > include /usr/local/etc/nginx/vhosts/*.conf;
> >
> > ...and a typical configuration file for each virtual host looks like this:
> >
> > server {
> > listen 80;
> > server_name foobar.com;
> > rewrite ^/(.*) http://www.foobar.com permanent;
> > }
> >
> > server {
> > listen 80;
> > server_name www.foobar.com;
> >
> > location / {
> > root /home/w/www001;
> > index index.php index.html index.htm;
> > }
> >
> > error_page 500 502 503 504 /50x.html;
> > location = /50x.html {
> > root /usr/local/etc/nginx/errorpages;
> > }
> >
> > error_page 404 /404.html;
> > location = /404.html {
> > root /usr/local/etc/nginx/errorpages;
> > }
> >
> > location ~ \.php$ {
> > fastcgi_pass 127.0.0.1:9000;
> > fastcgi_index index.php;
> > fastcgi_intercept_errors on;
> > fastcgi_param SCRIPT_FILENAME /home/w/www001$fastcgi_script_name;
> > include fastcgi_params;
> > }
> >
> > location ~ /\.ht {
> > deny all;
> > }
> > }
> >
> > I find it overly complex and redundant to include all of this in every
> > *.conf file however.
> >
> > For example, would it be possible to put the error_page stuff in the main
> > nginx.conf instead? Like a global option for everything.
> >
> > Also, is it possible to use variables in the configuration file? Right now
> > I'm hard-coding the domain/host name into several places in each *.conf
> > file, and also the path to the actual files. This makes it a PITA to
> > maintain.
> >
> > I've only been using nginx for a very short time, so I'm open for any
> > suggestions. :-)
> >
> > --
> > Joel
> >
> >
> >
>
More information about the nginx
mailing list