Forum: NGINX Serving an iPhone website with nginx

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Nick P. (Guest)
on 2009-01-13 00:33
(Received via mailing list)
nginx crowd,

(For those not interested in serving an iPhone site, feel free to delete
this.)

While recently working on an iPhone website, I found I had some
seemingly
common requirements but couldn't find any good write-ups on how to serve
such a site with nginx.  While it's of course just a "normal" website, I
wanted to redirect iPhone users to an optimized version of the site
while
still allowing them to get back to the full site if necessary.  I also
needed to serve two versions of the same page from a mobile-optimized
website for the same URL (an iPhone version and a standard mobile
version,
based on user agent) while allowing each version of the page to be
cached
independently.

If anyone else has similar needs and would like to learn from my
experiences, this has the potential to save you a good day or two of
searching/reading/experimenting/puzzling/etc.  My write-up is at
http://nicknotfound.com/2009/01/12/iphone-website-...

Nick
mike (Guest)
on 2009-01-13 00:48
(Received via mailing list)
On Mon, Jan 12, 2009 at 2:19 PM, Nick P. <removed_email_address@domain.invalid>
wrote:

> While recently working on an iPhone website, I found I had some seemingly
> common requirements but couldn't find any good write-ups on how to serve
> such a site with nginx.  While it's of course just a "normal" website, I
> wanted to redirect iPhone users to an optimized version of the site while
> still allowing them to get back to the full site if necessary.  I also
> needed to serve two versions of the same page from a mobile-optimized
> website for the same URL (an iPhone version and a standard mobile version,
> based on user agent) while allowing each version of the page to be cached
> independently.

I would just do this in the application (PHP, etc.) level.

You could in theory do something funky with user agents in nginx and
do some rewrites or proxy to something else, or try to leverage the
XSL/XML capabilities nginx has. Otherwise I see no reason for nginx to
be invovled in this and would suggest to everyone to do this kind of
work in the application layer.
Nick P. (Guest)
on 2009-01-13 01:44
(Received via mailing list)
The reason I did this at the web server level rather than at the
application
level is that the Rails app I have running behind nginx is a generalized
content management system.  I could have built in the capabilities
necessary
to handle this into the CMS, but then I wouldn't be able to take
advantage
of the web server-level caching.  The nice thing about my solution is
that
it doesn't matter what is behind nginx -- it could be a simple site made
up
of nothing but static files with no app at all.  It was this simplicity
(and
ignorance on the part of the app) that I was going for.
Jonathan V. (Guest)
on 2009-01-13 06:53
(Received via mailing list)
thanks!

this actually has a lot of good ideas in it applicable to other
solutions
Evan M. (Guest)
on 2009-01-17 20:03
(Received via mailing list)
You should add this to the wiki:

http://wiki.codemongers.com/NginxConfiguration
Nick P. (Guest)
on 2009-01-18 18:13
(Received via mailing list)
Thanks for the suggestion.  I've added it to the page you referenced in
the
"Rewrite examples" section.

2009/1/17 Evan M. <removed_email_address@domain.invalid
<removed_email_address@domain.invalid>
>
This topic is locked and can not be replied to.