X-Accel Nginx HTTP server Tiny Tiny RSS konfigurace

X-accel umožňuje interní přesměrování na místo určené hlavičkou vrácenou z backendu. To vše díky pluginu nginx_xaccel nakonfigurovat i feed generátor Tiny Tiny RSS.

Díky tomu lze v backendu zpracovávat ověřování, přihlašování nebo cokoli jiného a HTTP server se pak postará o doručení obsahu z přesměrovaného umístění koncovému uživateli, čímž uvolní backend pro zpracování jiných požadavků. Tato funkce je běžně známá jako X-Sendfile.

Tato funkce se trochu liší od standardních modulů protože nespoléhá na směrnice, ale speciálním způsobem zpracovává hlavičky z upstreamu. Funguje to tak, že odešlete hlavičku x-accel.redirect s URI. HTTP server porovná tento URI se svými umístěními, jako by šlo o normální požadavek. Poté obslouží umístění, které odpovídá definovanému kořenovému + URI předanému v hlavičce.

Tiny Tiny RSS

Po instalaci x-accel pluginu z nabídky rozšíření přidáme v konfiguračním souboru /classes/config.php jméno pluginu za auth_internal

Config::SMTP_FROM_ADDRESS => [ "noreply@localhost",                                      Config::T_STRING ],
Config::DIGEST_SUBJECT => [ "[tt-rss] New headlines for last 24 hours",          Config::T_STRING ],
Config::CHECK_FOR_UPDATES => [ "true",                                                                      Config::T_BOOL ],
Config::PLUGINS => [ "auth_internal, nginx_xaccel",                                                 Config::T_STRING ],
Config::LOG_DESTINATION => [ Logger::LOG_DEST_SQL,                                        Config::T_STRING ],
Config::LOCAL_OVERRIDE_STYLESHEET => [ "local-overrides.css",                     Config::T_STRING ],

X-accel

V konfiguračním souboru domény /etc/nginx/sites-available/tiny.local.conf

server {
    listen 80; ## listen for ipv4; this line is default and implied
    listen 443 ssl http2;

    root /var/www/html/tiny.local;
    index index.php index.html index.htm;

    access_log /var/log/nginx/tiny_access.log;
    error_log /var/log/nginx/tiny_error.log info;

    server_name tiny.local;

    ssl_certificate /etc/ssl/certs/localhost.crt;
    ssl_certificate_key /etc/ssl/private/localhost.key;

    ssl_protocols TLSv1.2 TLSv1.1 TLSv1;

    location / {
        index           index.php;
    }

    location ~ \.php$ {
        try_files $uri = 404; #Prevents autofixing of path which could be used for exploit
        include /etc/nginx/fastcgi_params;
        fastcgi_buffering off;
        fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
        fastcgi_param MOD_X_ACCEL_REDIRECT_ENABLED on;
    }

    location /cache {
        aio threads;
        internal;
    }
}

Schéma

Nginx X-Accel
Nginx X-Accel

Užitečné

Odkaz na Synopse X-Accel.
Článek Nginx SSL Proxy HA.

ICTIS.CZ