Last active

Mobile device detection in Nginx with just 7 lines of configuration

  • Download Gist
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
### Testing if the client is a mobile or a desktop.
### The selection is based on the usual UA strings for desktop browsers.
## Testing a user agent using a method that reverts the logic of the
## UA detection. Inspired by
map $http_user_agent $is_desktop {
default 0;
~*linux.*android|windows\s+(?:ce|phone) 0; # exceptions to the rule
~*spider|crawl|slurp|bot 1; # bots
~*windows|linux|os\s+x\s*[\d\._]+|solaris|bsd 1; # OSes
## Revert the logic.
map $is_desktop $is_mobile {
1 0;
0 1;

I've updated the directive to support IE9 on Windows Phone.

Added the bot detection.

The following is a reference to an open (but not open source) solution provided by my company to detect mobile devices (or any kind of HTTP client in fact) through NGINX.

I figured that companies looking for a professionally supported solution in this space may want to know about it.



Please sign in to comment on this gist.

Something went wrong with that request. Please try again.