Skip to content
Snippets Groups Projects
Select Git revision
  • 1601a799ba9d6c8c1d3bbfbe8d381ba104eae8be
  • release default protected
  • workshop
3 results

setup_environment.rst

Blame
  • othes 2.99 KiB
    # Default server configuration
    #
    # server {
    #   listen 80;
    #   server_name netbox02.univie.ac.at;
    #   server_name gitlab02.phaidra.org;
    #   return 301 https://$server_name$request_uri;
    # }
    
    server {
      listen 80;
      listen 443 ssl http2;
    # server_name netbox02.univie.ac.at;
      server_name gitlab02.phaidra.org;
    
      root /var/www/html/netbox02;
      index index.html index.htm;
    
    # location / {
    #   try_files $uri $uri/ =404;
    # }
    
    # location /hello {
    #   content_by_lua '
    #     ngx.header["Content-Type"] = "text/html"
    #     ngx.say("hello world")
    #   ';
    # }
    
      location / {
        content_by_lua_block {
    
    local connect = function()
        local redis= require "nginx.redis"
        local red= redis:new()
        red:set_timeout(1000) -- 1 sec
        local ok, err = red:connect("127.0.0.1", 6379)
        if not ok then
            ngx.say(err)
            return ngx.exit(ngx.ERROR)
        end
    
        red:select(10) -- we use db10
        -- red:set('URXN10', 'BLA10')
     
        return red
    end
    
          local meth= ngx.req.get_method()
          -- ngx.header["Content-Type"] = "text/html"
          -- ngx.say("<h1>hello world</h1>")
          -- ngx.say("<p>meth=[", meth, "]</p>");
    
          if meth == "GET" or meth == "HEAD" then
            local uri= ngx.var.uri
            -- ngx.say("<p>uri=[", uri, "]</p>");
            local id, sep, rest
            for x1, x2, x3 in string.gmatch(uri, "/(%d+)(/?)(.*)") do
              id=   x1
              sep=  x2
              rest= x3
              break
            end
            -- ngx.say("<p>id=[", id, "] sep=[", sep, "] rest=[", rest, "]</p>");
    
            if id and tonumber(id) > 0 then
              -- ngx.say("<p>lookup redirect for id=[", id, "]</p>");
              local red= connect()
              local newurl, err= red:get(id)
    
              if type(newurl) == "string" then
                -- ngx.say("<p>newurl=[", newurl, "]</p>")
                ngx.redirect(newurl)
              else
                ngx.header["Content-Type"] = "text/html"
                ngx.say("<p>no redirection found (unkown id)</p>")
              end
            else
              ngx.header["Content-Type"] = "text/html"
              ngx.say("<p>no redirection found (unknown url)</p>")
            end
    
    --[[
            local args, err= ngx.req.get_uri_args()
            for key, val in pairs(args) do
               if type(val) == "table" then
                 ngx.say("<p>", key, ": ", table.concat(val, ", "), "</p>")
               else
                 ngx.say("<p>", key, ": ", val, "</p>")
               end
            end
    --]]
    
          else
            ngx.header["Content-Type"] = "text/html"
            ngx.say("<h1>sorry, can't help you</h1>")
          end
    
        }
      }
    
      ssl on;
    # ssl_certificate     /etc/ssl/certs/fullchain_netbox.univie.ac.at.crt;
    # ssl_certificate_key /etc/ssl/private/netbox.univie.ac.at.key;
      ssl_certificate     /etc/ssl/certs/fullchain_gitlab.phaidra.org.crt;
      ssl_certificate_key /etc/ssl/private/gitlab.phaidra.org.key;
      ssl_session_timeout 5m;
    	ssl_protocols       TLSv1.2 TLSv1.1 TLSv1; # Dropping SSLv3, ref: POODLE
      ssl_ciphers         'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
      ssl_prefer_server_ciphers on;
      ssl_session_cache shared:SSL:10m;
    
    }