Back to site
Since 2004, our University project has become the Internet's most widespread web hosting directory. Here we like to talk a lot about web development, networking and server security. It is, after all, our expertise. To make things better we've launched this science section with the free access to educational resources and important scientific material translated to different languages.

Da li je Nginx zastareo sada kada imamo Amazon CloudFront?

Pre oko 5 godina uključio sam se sa Apache na Nginx .I sa ovim uključenjem praktično sam mogao zaustaviti ubadanje moje noge sa HTTP akceleratorima kao što su Squid i Varnish jer Nginx služe fajlove sa sistema fajlova brže i efikasnije nego akceleratori. I, to je jedan manje, pokretni deo koji može da krene naopako.

Onda,krajem 2010 Amazon je predstavio Custom Origins na njihovom Amazon CloudFront CDN servisu. U odnosu na druge konkurentske CDNs,valjda CloudFront gubi neke repere i dobija neke druge. Ipak, network latency speed-freaks je najveći neprijatelj i CDNs su super.

Sa Custom Origin sve što treba da uradite je da kažete CloudFront da deluje kao "proxy". Potrebno je i URL i zameniti ime domena da ide po originalu sa svog servera. Na primer...

  1. Vi pripremite http://mydomain.com/static/foo.css
  2. Konfigurišite vaš CloudFront da dobijete vaš novi domen (tzv. "Distribution")
  3. Zatražite http://efac1bef32rf3c.cloudfront.net/static/foo.css
  4. CloudFront preuzima resurs sa http://mydomain.com/static/foo.css i čuva primerak
  5. CloudFront uočava koje zaglavlje keš memorije je korišćeno i ponavlja to. Zauvek.

Znači, ako napravim moj Nginx server,služeći se sa /static/foo.css :

Expires: Thu, 31 Dec 2037 23:55:55 GMT Cache-Control: max-age=315360000 Cache-Control: public

Onda će CloudFront učiniti isto i to znači nikada se ponovo neće vratiti na vaš Nginx . Drugim rečima, vaš Nginx server kada služi cacheable statičku imovinu i svi drugi zahtevi su samo uobičajeni HTML i JSON i bez obzira šta pozadina vašeg web server-a izbacuje.

Tako, šta to znači? Znači da možemo značajno promisliti način na koji pišemo kod koji pripremamo i gradimo statička sredstva. Umesto kompleksne gradnje ili run-time procesa koji na kraju pišu fajlove na sistem fajlova,mi možemo u osnovi sve uraditi sve u run-time i ne brinite o brzini. Na primer,nešto kao ovo:

# urls.py url(r'/static/(.*\.css)', views.serve_css) # views.py def serve_css(request, filename): response = http.HttpResponse(mimetype="text/css") response.setHeader('Cache-Control': 'public, max-age:315360000') content = open(filename).read() content = cssmin.cssmin(content) content = '/* copyright: you */\n%s' % content response.write(content) return response

To je neispitan kod koji se može mnogo poboljšati i nadam se da ćete dobiti ideju. Očigledno,tu je mnogo više stvari koje možete i treba da uradite nadovezivanjem datoteke.

Pa,šta ovo još znači? Ne treba vam Nginx.Bar ne za brže prikazivanje statičnih fajlova. Imam shown before that something like Nginx + uWSGI is "better" (brži i manje memorije)nešto kao Apache + mod_wsgi ali često razlika je zanemarljiva.

I za jednu neću ponovo napisati sve moje različite kodove koje sam pripremio za optička statička sredstva hosting ali definitivno imaću ove stvari na umu. Posle svega, tu su i druge divne stvari koje Nginx može takođe uraditi.

Uzgred, ovde je zaista dobar diagram that explains CloudFront





Published (Last edited): 28-04-2013 , source: http://www.peterbe.com/plog/is-nginx-obsolete-amazon-cloudfront