search close

Debian NGINX 1.10-1.14

access_time Updated Jun 2, 2023

Add the package repositories

Add the version of the Debian package repository that you want to use.

Debian 10 - Buster

sudo apt-get update
sudo apt-get install -y apt-transport-https wget gnupg
wget -qO - https://apt.signalsciences.net/release/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/sigsci.gpg
sudo echo "deb [signed-by=/usr/share/keyrings/sigsci.gpg] https://apt.signalsciences.net/release/debian/ buster main" | sudo tee /etc/apt/sources.list.d/sigsci-release.list
sudo apt-get update

Debian 9 - Stretch

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

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

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

Enable Lua for NGINX

Some older versions of NGINX don’t support native loading of Lua modules. Therefore, we require NGINX to be built with Lua and LuaJIT support. You must first ensure that Lua is installed and enabled for NGINX before enabling the Signal Sciences NGINX module.

Install the Lua NGINX Module

Install the dynamic Lua NGINX Module appropriate for your NGINX distribution.

NGINX.org distribution

  1. Install the Lua NGINX Module.

    • NGINX 1.12.1 or higher

      sudo apt-get install nginx-module-lua
      
    • NGINX 1.11

      sudo apt-get install nginx111-lua-module
      
    • NGINX 1.10

      sudo apt-get install nginx110-lua-module
      
  2. In your NGINX config file (located by default at /etc/nginx/nginx.conf), add the following lines to the global section after the line that starts with pid:

    load_module modules/ndk_http_module.so;
    load_module modules/ngx_http_lua_module.so;
    
  3. Restart the NGINX service to initialize the new module.

    sudo service nginx restart
    

Debian distribution

Enable Lua by installing the nginx-extras package.

sudo apt-get install nginx-extras && sudo service nginx restart

Check that Lua is loaded correctly

Load the following config (e.g., sigsci_check_lua.conf) with NGINX to verify that Lua has been loaded properly:

# 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 a successfully loaded 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 the NGINX module

  1. Install the module.

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

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

    • Debian 8 or higher

      sudo systemctl unmask nginx && sudo systemctl restart nginx
      
    • Debian 7

      sudo service nginx restart