All Projects → sam0x17 → nginx-android-app

sam0x17 / nginx-android-app

Licence: WTFPL license
android app version of nginx

Programming Languages

c
50402 projects - #5 most used programming language
java
68154 projects - #9 most used programming language
Vim Script
2826 projects
XS
67 projects
Makefile
30231 projects
C++
36643 projects - #6 most used programming language

(forked from https://bitbucket.org/ntakimura/android-nginx-app)

Android Application with Nginx

Android Application with Nginx is the demo application for android-nginx. You can try using nginx server on your android device.

Nginx Base Version

Nginx release 1.7.0

Application Build Manual

Install build tools

Install following build tools.

name value
HOME your home directory
ANDROID_HOME Android SDK install path
ANDROID_NDK_HOME Android NDK install path
ANT_HOME Apache Ant install path

And, make standalone toolchain.

#!sh
% $ANDROID_NDK_HOME/build/tools/make-standalone-toolchain.sh \
    --platform=android-19 --install-dir=$HOME/local/android-toolchain

Configuration nginx core and modules

Connect android device with USB cable, or launch android emulator.

Run command to configure nginx core and libraries.

#!sh
% cd jni/nginx

% auto/configure \
    --crossbuild=android-arm \
    --prefix=/sdcard/nginx \
    --with-cc=$HOME/local/android-toolchain/arm-linux-androideabi/bin/gcc \
    --without-pcre --without-http_rewrite_module --without-http_userid_module \
    --with-cc-opt=-Wno-sign-compare

Build library and application

Build android application ant.

#!sh
% $ANT_HOME/bin/ant debug

Application Usage

Use application

Nginx needs config files and logs directory to run. Please copy sdcard/nginx to /sdcard/nginx in the android device.

/sdcard
    +-- nginx/
          +-- conf/
          |     +-- nginx.conf
          |     +-- mime.types
          |
          +-- html/
          |     +-- index.html
          |     +-- 50x.html
          |
          +-- logs/

After that, install android-nginx-app.apk, and open http://localhost:8080/ with web browser.

Sample code

// create Nginx instance
Nginx nginx = Nginx.create();

// start nginx
nginx.start();

Class org.bitbucket.ntakimura.nginx.Nginx has similar methods to com.sun.net.httpserver.HttpServer. Nginx starts and stops by Nginx#start and Nginx#stop. Android System Library does not include com.sun.net.httpserver.HttpServer, so class Nginx does not extend that class.

Class Nginx is designed as singleton model. Nginx#create returns same instance, when it is called any times.

License

The application released under WTFPL

            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
                    Version 2, December 2004

 Copyright (C) 2014 Naoki Takimura <[email protected]>

 Everyone is permitted to copy and distribute verbatim or modified
 copies of this license document, and changing it is allowed as long
 as the name is changed.

            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. You just DO WHAT THE FUCK YOU WANT TO.

Nginx's license is not WTFPL. Check its license in http://nginx.org/LICENSE .

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].