ServerBlockExample
(Difference between revisions)
(→A Default Catchall Virtual Host: Updated for newer versions and clarity.) |
(→Server Block Examples) |
||
| (One intermediate revision by one user not shown) | |||
| Line 1: | Line 1: | ||
| − | = | + | = Server Block Examples = |
| − | == Two | + | Note: "VirtualHost" is an Apache term. Nginx does not have Virtual hosts, it has "Server Blocks" that use the server_name and listen directives to bind to tcp sockets. |
| + | |||
| + | == Two Server Blocks, Serving Static Files == | ||
<geshi lang=nginx> | <geshi lang=nginx> | ||
| Line 24: | Line 26: | ||
</geshi> | </geshi> | ||
| − | == A Default | + | == A Default "Catch All" Server Block == |
<geshi lang=nginx> | <geshi lang=nginx> | ||
| Line 51: | Line 53: | ||
server { | server { | ||
# Replace this port with the right one for your requirements | # Replace this port with the right one for your requirements | ||
| − | listen 80 | + | listen 80 default_server; #could also be 1.2.3.4:80 |
# Multiple hostnames separated by spaces. Replace these as well. | # Multiple hostnames separated by spaces. Replace these as well. | ||
server_name star.yourdomain.com *.yourdomain.com; # Alternately: _ | server_name star.yourdomain.com *.yourdomain.com; # Alternately: _ | ||
| − | root /PATH/TO/WEBROOT | + | root /PATH/TO/WEBROOT; |
error_page 404 errors/404.html; | error_page 404 errors/404.html; | ||
| Line 63: | Line 65: | ||
index index.php index.html index.htm; | index index.php index.html index.htm; | ||
| − | # | + | # static file 404's aren't logged and expires header is set to maximum age |
location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ { | location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ { | ||
access_log off; | access_log off; | ||
Latest revision as of 14:13, 17 February 2012
Contents |
[edit] Server Block Examples
Note: "VirtualHost" is an Apache term. Nginx does not have Virtual hosts, it has "Server Blocks" that use the server_name and listen directives to bind to tcp sockets.
[edit] Two Server Blocks, Serving Static Files
http { index index.html; server { server_name www.domain1.com; access_log logs/domain1.access.log main; root /var/www/domain1.com/htdocs; } server { server_name www.domain2.com; access_log logs/domain2.access.log main; root /var/www/domain2.com/htdocs; } }
[edit] A Default "Catch All" Server Block
http { index index.html; server { listen 80 default_server; server_name _; # This is just an invalid value which will never trigger on a real hostname. access_log logs/default.access.log main; server_name_in_redirect off; root /var/www/default/htdocs; } }
[edit] Wildcard Subdomains in a Parent Folder
This is just a really easy way to keep adding new subdomains, or to add new domains automatically when DNS records are pointed at the server. Note that I have included FCGI here as well. If you want to just serve static files, strip out the FCGI config and change the default document to index.html. Rather than creating a new vhost.conf file for every domain, just create one of these:
server { # Replace this port with the right one for your requirements listen 80 default_server; #could also be 1.2.3.4:80 # Multiple hostnames separated by spaces. Replace these as well. server_name star.yourdomain.com *.yourdomain.com; # Alternately: _ root /PATH/TO/WEBROOT; error_page 404 errors/404.html; access_log logs/star.yourdomain.com.access.log; index index.php index.html index.htm; # static file 404's aren't logged and expires header is set to maximum age location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ { access_log off; expires max; } location ~ \.php$ { include fastcgi_params; fastcgi_intercept_errors on; # By all means use a different server for the fcgi processes if you need to fastcgi_pass 127.0.0.1:YOURFCGIPORTHERE; } location ~ /\.ht { deny all; } }










