Giter VIP home page Giter VIP logo

nginx-servats-module's Introduction

Nginx Module: servats

Travis branch Gittag Documentation License

Scribe / Nginx Servats Module is an Nginx module that provides server status information.

Documentation

For beautifully formatted documentation that includes compilation and installation guides, the module configuration directives, and additional information, information on the Ruby-based RSpec testing architecture, our complete licensing information, as well as a plethora of additional information, visit our official documentation page at nginx-servats-module.docs.scribe.tools/docs.

Screen-shots

The following screen-shots show an overview of the main internal theme. Custom, user-specified JS and CSS includes can also be used to customize the look-and-feel to your specific needs.

Overview Screen-shot

Connections Screen-shot

Additional screenshots can be found on our RTD documentation at nginx-servats-module.docs.scribe.tools/docs.

License

This Nginx module is released under The MIT License (MIT) unless otherwise explicitly stated. See the License section of our RTD documentation for additional licensing information, including other relevant copyrights for this derivative work.

nginx-servats-module's People

Stargazers

lenucksi avatar Aurelien DE PALMA avatar Mathis Klooß avatar deRamzes avatar Denis Denisov avatar Rob Frawley 2nd avatar hacfi avatar

Watchers

Andrew Thomas avatar  avatar James Cloos avatar Aurelien DE PALMA avatar  avatar Rob Frawley 2nd avatar  avatar

nginx-servats-module's Issues

Known issue with patch files for 1.9.1 and 1.9.2

Specifically, hunk #6 for file src/event/ngx_event.c. 90% of functionality continues to work, though I do not have any information on stability issues within Nginx that may result... Fix forthcoming.

Buffer overflow in certain environments causes half-written HTML tag

Overview

A buffer overflow occurs that cuts off the closing </header> tag mid-way, resulting in the page loosing any semblance of useful rendering.

Cause: Undetermined

The buffer overflow is caused by a yet undetermined factor involving the environment the module is built on and/or a bug within the code that I have been unable to locate.

Affected Versions

To the best of my knowledge, this affects all alpha and beta releases thus far, which would include: 1.0.0-[beta|alpha][0-9].

Scenarios

The Broken Environment

I maintain an Nginx PPA on Launchpad for Scribe Inc that includes mainline builds of Nginx. These builds utilize Thomas Ward's packages on the official Nginx Development PPA.

The Scribe Nginx PPA builds directly off the amazing work of the previously referenced Thomas Ward builds. The only substantial deviation from the official mainline PPA releases are the removal and addition of specific modules that are used at Scribe.

Currently, when this module is included in a build of Nginx prepared for a PPA-automated build environment and compiled either locally using SimpleSbuild or via an official Launchpad builder agent, this error arises.

I am provided both a link to an an active instance of Nginx running the broken build (http://45.55.156.174/status) as well as a screen-shot of the unexpected output:

overflow-servats_on-utopic-pkg-builder

Additionally, you can view a capture of the broken HTML.

The Working Environment

When the module is compiled into a clean Nginx source-tree locally, via the Rake-based task manager provided, and tested against the (admittedly simplistic) RSpec assertions, the module performs as expected.

Note: See the Compiling and Testing section of our RTD documentation for information about how the Ruby/Rake/RSpec/Bash tool-chain is implemented.

If you aren't interested in installing the Ruby requirements and dependencies, you can perform the entire operation in a few simple steps to achieve the same configured and compiled state as you would when using the automated tool-chain:


Compile Manually (Alternative to Rake)

1. Define the Nginx version you'd like to download, as well as any compiler arguments you'd like to pass. Note that changing the O flag from 0 to 3 did not produce any unexpected behavior for me; I do not believe it is related to any compiler optimizations.

$ NGX_VERSION=1.7.10
$ CFLAGS="-g -O3"

2. Clone the repository and enter the directory. Create the required folder structure within the repository root folder to place the Nginx source code, as well as its compiled binaries and installation assets.

$ git clone https://github.com/scribenet/nginx-servats-module.git
$ cd nginx-servats-module && \
    mkdir build && \
    mkdir vendor && \
    cd vendor

3. Download the Nginx source, patch it, configure it, and perform the compilation and install.

$ curl -s -L -O http://nginx.org/download/nginx-${NGX_VERSION}.tar.gz
$ tar --strip-components=1 -zxf nginx-${NGX_VERSION}.tar.gz
$ patch -p1 < ../patches/http_servats_nginx_${NGX_VERSION}.patch
$ ./configure \
  --prefix=$(pwd)/../build/ \
  --conf-path=conf/nginx.conf \
  --error-log-path=logs/error.log \
  --http-log-path=logs/access.log \
  --add-module=../module/
$ make install

4. Either edit the configuration file yourself, manually (at *build/config/nginx.conf) or simply copy over the configuration included in the repository for automated testing. After doing so, start up Nginx!*

$ cp ../scripts/fixtures/nginx.conf ../build/conf/nginx.conf
$ ../build/sbin/nginx

5. If you used the configuration file provided, you should now be able to navigate to *http://http://localhost:8888/servats to view the status page.*


You can see the results of such a successful build, showing the intended behavior via the provided link (http://104.236.117.189/status) as well as the following screen-shot:

working-servats_on-trusty-pkg-builder

Thoughts/Comments

Any thoughts/comments would be more than welcome. The function that adds the <header> [...] </header> data to the chain can be found at the following URL.

/scribenet/nginx-servats-module/[...]/ngx_http_servats_module.c#L527

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.