search close

Debian NGINX 1.9 or lower

access_time Updated Jun 20, 2021

Add the Package Repositories

We’ll first add in the Signal Sciences apt repositories as this simplifies the installation process.

Debian 10 “buster”

Cut-and-paste the following script:

sudo apt-get install -y apt-transport-https wget gnupg
wget -qO - https://apt.signalsciences.net/release/gpgkey | sudo apt-key add -
sudo tee /etc/apt/sources.list.d/sigsci-release.list <<-'EOF'
deb https://apt.signalsciences.net/release/debian/ buster main
EOF
sudo apt-get update

Debian 9 “stretch”

Cut-and-paste the following script:

sudo apt-get install -y apt-transport-https wget gnupg
wget -qO - https://apt.signalsciences.net/release/gpgkey | sudo apt-key add -
sudo tee /etc/apt/sources.list.d/sigsci-release.list <<-'EOF'
deb https://apt.signalsciences.net/release/debian/ stretch main
EOF
sudo apt-get update

Debian 8 “jessie”

Cut-and-paste the following script:

sudo apt-get install -y apt-transport-https wget
wget -qO - https://apt.signalsciences.net/release/gpgkey | sudo apt-key add -
sudo tee /etc/apt/sources.list.d/sigsci-release.list <<-'EOF'
deb https://apt.signalsciences.net/release/debian/ jessie main
EOF
sudo apt-get update

Debian 7 “wheezy”

Cut-and-paste the following script:

sudo apt-get install -y apt-transport-https wget
wget -qO - https://apt.signalsciences.net/release/gpgkey | sudo apt-key add -
sudo tee /etc/apt/sources.list.d/sigsci-release.list <<-'EOF'
deb https://apt.signalsciences.net/release/debian/ wheezy main
EOF
sudo apt-get update

Enabling Lua for NGINX

For older versions of NGINX, we require NGINX to be built with the third party ngx_lua module. As older versions of NGINX do not support dynamically loadable modules you would typically be required to rebuild from source.

To assist customers, we provide pre-built drop in replacements NGINX packages already built with the ngx_lua module. This is intended for customers who prefer not to build from source, or who either use a distribution provided package or an official NGNIX provided package.

Flavors of our NGINX replacement packages

We support three “flavors” of NGINX. These flavors are based on what upstream package we’ve based our builds off of. All our package flavors are built according to the official upstream maintainer’s build configuration with the addition of the ngx_lua and ngx_devel_kit modules.

Our provided flavors are:

  • distribution - The distribution flavor is based off the official distribution provided NGINX packages. For Debian-based Linux distributions (Ubuntu and Debian) these are the based off the official Debian NGINX packages.

  • stable - The stable flavor is based off the official nginx.org “stable” package releases.

  • mainline - The mainline flavor is based off the official nginx.org “mainline” package relases.

Flavor Version Matrix of our NGINX replacement packages

The following versions are contained in the various OS and flavor packages:

OS Distribution Stable Mainline
Debian 7 (Wheezy) 1.2.1 1.8.1 1.9.10
Debian 8 (Jessie) 1.6.2 1.8.1 1.9.10

The versions are dependent on the upstream package maintainer’s supported version.

Apt repository setup for Debian systems

To configure the apt repository on your Debian system:

  1. Add our repository key:

    wget -qO - https://apt.signalsciences.net/nginx/gpg.key | sudo apt-key add -
  2. Create a new file /etc/apt/sources.list.d/sigsci-nginx.list with the following content based on your OS distribution and preferred flavor:

    Distribution Flavor

    OS sigsci-nginx.list content
    Debian 7 (Wheezy) deb https://apt.signalsciences.net/nginx/distro wheezy main
    Debian 8 (Jessie) deb https://apt.signalsciences.net/nginx/distro jessie main

    Stable Flavor

    OS sigsci-nginx.list content
    Debian 7 (Wheezy) deb https://apt.signalsciences.net/nginx/stable wheezy main
    Debian 8 (Jessie) deb https://apt.signalsciences.net/nginx/stable jessie main

    Mainline flavor

    OS sigsci-nginx.list content
    Debian 7 (Wheezy) deb https://apt.signalsciences.net/nginx/mainline wheezy main
    Debian 8 (Jessie) deb https://apt.signalsciences.net/nginx/mainline jessie main
  3. Update the apt caches:

    apt-get update
  4. Uninstall the default NGINX

    sudo apt-get remove nginx nginx-common nginx-full
  5. Install the Signal Sciences NGINX

    sudo apt-get install nginx

Check that Lua is loaded correctly

To verify that Lua has been loaded properly load the following config(ex: sigsci_check_lua.conf) with nginx:

  # Config just to test for lua jit support
#
# Test from commandline as follows:
# nginx -t -c <explicit path>/sigsci_check_lua.conf
#

# The following load_module directives are required if you have installed
# any of: nginx110-lua-module, nginx111-lua-module, or nginx-lua-module
# for your nginx.org installation.
# Also, for some nginx-1.10.nn installed from nginx-extras package, you may
# need to specify the load directives.
# Given the above uncomment the following:
#
# load_module modules/ndk_http_module.so;
# load_module modules/ngx_http_lua_module.so;

events {
    worker_connections 768;
    # multi_accept on;
}
http {
init_by_lua '

local m = {}
local ngx_lua_version = "dev"

if ngx then
  -- if not in testing environment
  ngx_lua_version = tostring(ngx.config.ngx_lua_version)
  ngx.log(ngx.STDERR, "INFO:", " Check for jit: lua version: ", ngx_lua_version)
end

local r, jit = pcall(require, "jit")
if not r then
  error("ERROR: No lua jit support: No support for SigSci Lua module")
else

  if jit then
    m._SERVER_FLAVOR = ngx_lua_version .. ", lua=" .. jit.version
    if os.getenv("SIGSCI_NGINX_DISABLE_JIT") == "true" then
      nginx.log(ngx.STDERR, "WARNING:", "Disabling lua jit because env var: SIGSCI_NGINX_DISABLE_JIT=", "true")
    end
    ngx.log(ngx.STDERR, "INFO:", " Bravo! You have lua jit support=", m._SERVER_FLAVOR)
  else
    error("ERROR: No luajit support: No support for SigSci")
  end

end

';

}

Example of successfully loading the config and its output:

$ nginx -t -c <your explicit path>/sigsci_check_lua.conf

nginx: [] [lua] init_by_lua:9: INFO: Check for jit: lua version: 10000
nginx: [] [lua] init_by_lua:22: INFO: Bravo! You have lua jit support=10000, lua=LuaJIT 2.0.4
nginx: the configuration file <your explicit path>/sigsci_check_lua.conf syntax is ok
nginx: configuration file <your explicit path>/sigsci_check_lua.conf test is successful

Install and Configure the Signal Sciences NGINX Module

  1. Install the module

    apt-get install sigsci-module-nginx
  2. Add the following to your NGINX configuration file in the http context (default: /etc/nginx/nginx.conf)

    include "/opt/sigsci/nginx/sigsci.conf";
  3. Restart the NGINX Service to initialize the new module

    Debian 8 and higher

    sudo systemctl unmask nginx && sudo systemctl restart nginx

    Debian 7

    sudo service nginx restart