Redirect afbeeldingen naar een subdomein met Nginx

Subdomeinen kunnen worden gebruikt voor het serveren van afbeeldingen. Omdat afbeeldingen meer resources in nemen dan de site, kan dit eenvoudig worden uitgesplitst.
In deze handleiding wordt uitgelegd hoe Nginx ingesteld kan worden zodat het redirect afbeeldingen naar een subdomein redirect. Dit gebeurt allemaal binnen Nginx.

In deze handleiding worden 2 domeinen gebruikt:

  • www.ihavetheknowledge.nl voor de normale website
  • static.ihavetheknowledge.nl voor de statische bestanden zoals afbeeldingen, css en javascript
  • 10.10.10.10:80 is het IP-adres en de poort waarop Nginx geconfigureerd word.

In de Virtual Host van Nginx zal de redirect geplaatst worden voor afbeeldingen en andere statische bestanden.

www.ihavetheknowledge.nl

In de Vhost voor de normale website moeten een aantal regels aangepast worden.

server {
listen 10.10.10.10:80;
server_name  www.ihavetheknowledge.nl;
access_log  off;
location / {
if ($request_method !~ ^(GET|HEAD|POST)$ ) { return 444;}
proxy_pass http://backend;
include /etc/nginx/conf.d/proxy.conf;
}
location ~* ^.+\.(jpg|jpeg|gif|png|ico|tgz|gz|pdf|rar|bz2|exe|ppt|txt|tar|mid|midi|wav|bmp|rtf) {
rewrite ^(.*) http://static.ihavetheknowledge.nl$1 permanent;
}
location ~* ^.+\.(css|js)$ {
rewrite ^(.*) http://static.ihavetheknowledge.nl$1 permanent;
}
}

Nginx zal alle bestanden met de extensies omleiden naar het adresstatic.ihavetheknowledge.nl. Het overige netwerkverkeer wordt via proxy_pass naar de backend gestuurd.

static.ihavetheknowledge.nl

server {
listen 10.10.10.10:80;
server_name  static.ihavetheknowledge.nl;
access_log  off;
location / {
rewrite ^(.*) http://www.ihavetheknowledge.nl;
}
location ~* ^.+\.(jpg|jpeg|gif|png|ico|tgz|gz|pdf|rar|bz2|exe|ppt|txt|tar|mid|midi|wav|bmp|rtf) {
root /srv/sites/static.ihavetheknowledge.nl/wwwroot;
expires 90d;
allow all;
}
location ~* ^.+\.(css|js)$ {
root /srv/sites/static.ihavetheknowledge.nl/wwwroot;
expires 30d;
allow all;
}
}

In deze configuratie worden alle bestanden met de opgegeven extensies uit de map /srv/sites/static.ihavetheknowledge.nl/wwwroot gehaald en geserveerd aan de bezoeker van de site. Als een bezoeker het domein static.ihavetheknowledge.nl wil bezoeken, dan wordt deze omgeleid naar www.ihavetheknowledge.nl. Zo kunnen ongewenste bezoekers niet in de mappen komen.

Verder is er bij de locations voor afbeeldingen en css/js bestanden een allow all opgegeven zodat de toegang tot de bestanden openstaat. Er kan ook worden gekozen om bij location / een deny all te plaatsen. Bezoekers krijgen dan een 403 Forbidden melding.

Als bezoekers nu naar het adres www.ihavetheknowledge.nl gaan, dan zullen alle aanvragen voor afbeeldingen omgeleid worden naar static.ihavetheknowledge.nl.

Laat een reactie achter

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *