Jump to content

NGINX Reverse Proxy/dashboard progress times not refreshing


Recommended Posts

cmcooper1980
Posted (edited)

Hi all,

 

I was wondering if anyone can suggest or have insight on how to correct my issue (if it is an issue).  I have an NGINX reverse proxy for Emby with LetsEcrypt/Certbot SSL running on a Raspberry Pi 3B.  All is working well, my only issue is that when I navigate to my DDNS site for Emby and load the dashboard to see what users are logged in and check the video they are watching, the progress timestamps AND progress bar/transcode bar DO NOT dynamically refresh/update.  I have to either refresh the page/press F5 to update the progress info...  What line or lines in nginx conf file would cause this (or need to be added to fix this)?  When navigated to via localhost:8096, 127.0.0.1:8096, or machine IP xxx.xxx.xxx.xxx:8096 the dashboard's users' progress time, progress bar, and transcode progress update/refresh automatically every second...

 

All relevant config data copy and pasted below.

NGINX CONF FILE UNDER /etc/nginx/nginx.conf

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
        worker_connections 768;
        multi_accept on;
        use epoll;
}

http {

        ##
        # Basic Settings
        ##

        sendfile off;
        tcp_nopush on;
        tcp_nodelay on;
        client_body_timeout 10;
        client_header_timeout 10;
        keepalive_timeout 30;
        types_hash_max_size 2048;
        send_timeout 10;
        keepalive_requests 10;
        server_tokens off;

        server_names_hash_bucket_size 128;
        # server_name_in_redirect off;
        map_hash_bucket_size 64;

        include /etc/nginx/mime.types;
        default_type application/octet-stream;

        ##
        # SSL Settings
        ##

        ssl_protocols TLSv1.2; # Dropping SSLv3, ref: POODLE
        ssl_prefer_server_ciphers on;

        ##
        # Logging Settings
        ##

        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;

        ##
        # Gzip Settings
        ##

        gzip on;
        gzip_disable "msie6";

        gzip_vary on;
        gzip_proxied any;
        gzip_comp_level 6;
        gzip_min_length 1100;
        gzip_buffers 16 8k;
        gzip_http_version 1.1;
        gzip_types
        text/plain
        text/css
        text/js
        text/xml
        text/javascript
        application/json
        application/javascript
        application/x-javascript
        application/xml
        application/xml+rss
        application/x-font-ttf
        application/vnd.ms-fontobject
        font/opentype
        image/svg+xml
        image/x-icon;

        ##
        # Virtual Host Configs
        ##

        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
}


#mail {
#       # See sample authentication script at:
#       # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
#       # auth_http localhost/auth.php;
#       # pop3_capabilities "TOP" "USER";
#       # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
#       server {
#               listen     localhost:110;
#               protocol   pop3;
#               proxy      on;
#       }
#
#       server {
#               listen     localhost:143;
#               protocol   imap;
#               proxy      on;
#       }
#}




CONFIGURATION FILE UNDER /etc/nginx/sites-available/rps.conf

include                         /etc/nginx/sites-available/emby.conf;
#several other services' config files included here


CONFIGURATION FILE UNDER /etc/nginx/sites-available/emby.conf

server {
        listen                  80;
        server_name             emby.MyDomainName.com;
        return 301 https://$server_name$request_uri;
}

server {
        server_name             emby.MyDomainName.com;
        listen                  443 ssl http2;
        include                 /etc/nginx/ssl_params;
        include                 /etc/nginx/xss_params;

        location / {
                proxy_pass              http://192.xxx.xxx.xxx:8096;
                include                 /etc/nginx/backend_params;
        }

        location ~* ^.+\.(?:ico|css|js|json|gif|jpe?g|png|woff2)$ {
                proxy_pass              http://192.xxx.xxx.xxx:8096;
                include                 /etc/nginx/expires_params;
        }

        location ~* (/|favicon\.ico|/public|/configuration)$ {
                proxy_pass              http://192.xxx.xxx.xxx:8096;
                include                 /etc/nginx/expires_params;
        }
}


MODULARIZED REFERENCE BLOCKS UNDER /etc/nginx/

###SSL_PARAMS###

ssl                                     on;
ssl_certificate                         /etc/letsencrypt/live/MyDomainName.com/fullchain.pem;
ssl_certificate_key                     /etc/letsencrypt/live/MyDomainName.com/privkey.pem;

ssl_ciphers                             AES256+EECDH:AES256+EDH:!aNULL;

ssl_stapling                            on;
resolver                                8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout                        5s;
ssl_stapling_verify                     on;
ssl_trusted_certificate                 /etc/letsencrypt/live/MyDomainName.com/chain.pem;
keepalive_timeout                       180;
ssl_session_cache                       shared:SSL:20m;
ssl_session_timeout                     180m;
ssl_dhparam                             /etc/letsencrypt/live/MyDomainName.com/dhparam.pem;
ssl_ecdh_curve                          secp384r1;

# This is for strict transport security HSTS
add_header                              Strict-Transport-Security "max-age=31536000; includeSubdomains" always;

add_header                              Public-Key-Pins 'pin-sha256="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx="; pin-sha256="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx="; pin-sha256="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx="; pin-sha256="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx="; max-age=2592000';

client_max_body_size 1024M;

###SSL_PARAMS###



###XSS_PARMS###

add_header                                      X-Xss-Protection "1; mode=block" always;
add_header                                      X-Content-Type-Options "nosniff" always;
add_header                                      X-Frame-Options "SAMEORIGIN" always;
proxy_hide_header                               X-Powered-By;
add_header                                      'Referrer-Policy' 'no-referrer-when-downgrade';
add_header                                      Content-Security-Policy "frame-ancestors *.MyDomainName.com;";
add_header                                      Expect-CT 'enforce; max-age=3600';

###XSS_PARMS###



###BACKEND_PARAMS###

# Send traffic to the backend
proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;

# Send websocket data to the backend aswell
#proxy_http_version 1.1;
#proxy_set_header Upgrade $http_upgrade;
#proxy_set_header Connection "upgrade";

###BACKEND_PARAMS###



###EXPIRES_PARAMS###

expires                 14d;
add_header              Pragma public;
add_header              Cache-Control "public";

###EXPIRES_PARAMS###


Thanks in advance!

Edited by cmcooper1980
cmcooper1980
Posted

@@pir8radio may have some tips about this. Thanks.

Thanks @Luke! Navigating to @pir8radio page and clicking the related link revealed I only needed to un-comment the block regarding the websocket data (thanks to his informative line comments  "## WEBSOCKET SETTINGS ## Used to pass two way real time info to and from emby and the client.")  :)

  • Like 1
cmcooper1980
Posted

@@pir8radio may have some tips about this. Thanks.

Thanks @Luke! Navigating to @pir8radio page and clicking the related link revealed I only needed to un-comment the block regarding the websocket data (thanks to his informative line comments  "## WEBSOCKET SETTINGS ## Used to pass two way real time info to and from emby and the client.")  :)

Posted

Thanks for the feedback.

pir8radio
Posted

:)   Links on the profile for the win... lol   Glad you figured it out!

  • 2 years later...
Normanos
Posted

Thanks!

Its works as well in Linux. 

Simply added added these lines to reverse proxy conf file:

     ....

      # Send websocket data to the backend aswell
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
    ....

 

  • Like 1

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...