Download and run and you have a webserver on http://localhost serving up whatever is in your HTML folder. I've stripped down the conf/nginx.conf file in order to learn and explain it here:
http {
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
}
}
events {
worker_connections 1024;
}
This obviously sets up an HTTP server on your machine listening on port 80. It's actually just the explicit version of the default settings and so equivalent to:
http {
server {}
}
events {}
If you like being Spartan!
Next: want a second server (host name)? Just add a new server section:
server {The autoindex setting provides an automatic directory listing (great for local test servers).
server_name mydomain.com;
location / {
root /somewhere/else/;
autoindex on;
}
}
Of course you can configure logging (even per server), HTTP settings (e.g. keep alive stuff), mime types, SSL, hostname wildcards, virtual directories, error pages, gzip (nice), deny access (for .htaccess you need a converter) and all the usual stuff you need. But what get's me excited is the reverse proxy stuff.
Our company uses an expensive, high tech appliance for reverse proxy (and load balancing) functionality. This helps keep our web servers out of the DMZ and provides a neat front so that we can have multiple different web servers behind one application on one domain. The downside is you need a degree in it to configure it. NGINX is Simple™ - remember! Watch this:
Let's say you have another web server running PHP and you want NGINX to reverse proxy it. Simply pass all URLs ending in .php to that server with the location command's RegEx functionality:
location ~ \.php$ {That's awesome IMO. You need some serious expertise and clicking to get that done in our enterpise level applicance whose name begin's with "F" and ends with "5" but shall otherwise remain unnamed.
proxy_pass http://myphp.mydomain.com:8080;
}
So sharpen up your RegEx skills and run your whole organisation's web infrastructure through one domain if you like.
No comments:
Post a Comment