Lost Connection in frappe-erpnext

Hello, we currently have a t2.micro server on AWS with Ubuntu20 which contains bench 5.7.6, frappe v13.22. and erpnext 13.22.1. With this an accounting system has been created. Now, a constant problem arises and that is that connection is lost in specific networks, for example:
-In client A the connection is lost and does not load (for approximately 5-9 minutes), but in any other network (mobile data or external networks) it works correctly.
This happens on any network, whether it is your own, external or mobile data, but the point is that connection is lost on a certain network.
I share the nginx configuration.

upstream bench-frappe {
        server 127.0.0.1:8000 fail_timeout=0;
}
upstream bench-socketio-server {
        server 127.0.0.1:9000 fail_timeout=0;
}
# setup maps
# server blocks
server {
        server_name
                siteA.site.com
		siteB.site.com
                ;
        root /home/frappe/bench/sites;
        proxy_buffer_size 128k;
        proxy_buffers 4 256k;
        proxy_busy_buffers_size 256k;
        add_header X-Frame-Options "SAMEORIGIN";
        add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
        add_header X-Content-Type-Options nosniff;
        add_header X-XSS-Protection "1; mode=block";
        add_header Referrer-Policy "same-origin, strict-origin-when-cross-origin";

        location /assets {
                try_files $uri =404;
        }

        location ~ ^/protected/(.*) {
                internal;
                try_files /$host/$1 =404;
        }

        location /socket.io {
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_set_header X-Frappe-Site-Name $host;
                proxy_set_header Origin $scheme://$http_host;
                proxy_set_header Host $host;

                proxy_pass http://bench-socketio-server;
        }

        location / {

                rewrite ^(.+)/$ $1 permanent;
                rewrite ^(.+)/index\.html$ $1 permanent;
                rewrite ^(.+)\.html$ $1 permanent;

                location ~* ^/files/.*.(htm|html|svg|xml) {
                        add_header Content-disposition "attachment";
                        try_files /$host/public/$uri @webserver;
                }

                try_files /$host/public/$uri @webserver;
        }

        location @webserver {
                proxy_http_version 1.1;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Frappe-Site-Name $host;
                proxy_set_header Host $host;
                proxy_set_header X-Use-X-Accel-Redirect True;
                proxy_read_timeout 7200;
                proxy_redirect off;
                proxy_pass  http://bench-frappe;
        }

        # error pages
        error_page 502 /502.html;
        location /502.html {
                root /usr/local/lib/python3.8/dist-packages/bench/config/templates;
                internal;
        }

        # optimizations
        sendfile on;
        keepalive_timeout 1500;
        client_max_body_size 50m;
        client_body_buffer_size 16M;
        client_header_buffer_size 256M;

        # enable gzip compresion
        # based on https://mattstauffer.co/blog/enabling-gzip-on-nginx-servers-including-laravel-forge
        gzip on;
        gzip_http_version 1.1;
        gzip_comp_level 5;
        gzip_min_length 256;
        gzip_proxied any;
        gzip_vary on;
        gzip_types
                application/atom+xml
                application/javascript
                application/json
                application/rss+xml
                application/vnd.ms-fontobject
                application/x-font-ttf
                application/font-woff
                application/x-web-app-manifest+json
                application/xhtml+xml
                application/xml
                font/opentype
                image/svg+xml
                image/x-icon
                text/css
                text/plain
                text/x-component
                ;
                # text/html is always compressed by HttpGzipModule

    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/siteA.site.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/siteA.site.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}


server {
    if ($host = siteA.site.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot
        listen 80;
        listen [::]:80;
        server_name
                siteA.site.com
                ;
    return 404; # managed by Certbot
}

I also share the supervisor.conf configuration:

; Notes:
; priority=1 --> Lower priorities indicate programs that start first and shut down last
; killasgroup=true --> send kill signal to child processes too

[program:bench-frappe-web]
command=/home/frappe/bench/env/bin/gunicorn -b 127.0.0.1:8000 -w 3 -t 7200000 --limit-request-line 0 --max-requests 5000 --max-requests-jitter 500 -t 7200 frappe.app:application --preload
priority=4
autostart=true
autorestart=true
stdout_logfile=/home/frappe/bench/logs/web.log
stderr_logfile=/home/frappe/bench/logs/web.error.log
user=frappe
directory=/home/frappe/bench/sites

[program:bench-frappe-schedule]
command=/usr/local/bin/bench schedule
priority=3
autostart=true
autorestart=true
stdout_logfile=/home/frappe/bench/logs/schedule.log
stderr_logfile=/home/frappe/bench/logs/schedule.error.log
user=frappe
directory=/home/frappe/bench

[program:bench-frappe-default-worker]
command=/usr/local/bin/bench worker --queue default
priority=4
autostart=true
autorestart=true
stdout_logfile=/home/frappe/bench/logs/worker.log
stderr_logfile=/home/frappe/bench/logs/worker.error.log
user=frappe
stopwaitsecs=1560
directory=/home/frappe/bench
killasgroup=true
numprocs=1
process_name=%(program_name)s-%(process_num)d

[program:bench-frappe-short-worker]
command=/usr/local/bin/bench worker --queue short
priority=4
autostart=true
autorestart=true
stdout_logfile=/home/frappe/bench/logs/worker.log
stderr_logfile=/home/frappe/bench/logs/worker.error.log
user=frappe
stopwaitsecs=360
directory=/home/frappe/bench
killasgroup=true
numprocs=1
process_name=%(program_name)s-%(process_num)d

[program:bench-frappe-long-worker]
command=/usr/local/bin/bench worker --queue long
priority=4
autostart=true
autorestart=true
stdout_logfile=/home/frappe/bench/logs/worker.log
stderr_logfile=/home/frappe/bench/logs/worker.error.log
user=frappe
stopwaitsecs=1560
directory=/home/frappe/bench
killasgroup=true
numprocs=1
process_name=%(program_name)s-%(process_num)d

[program:bench-redis-cache]
command=/usr/bin/redis-server /home/frappe/bench/config/redis_cache.conf
priority=1
autostart=true
autorestart=true
stdout_logfile=/home/frappe/bench/logs/redis-cache.log
stderr_logfile=/home/frappe/bench/logs/redis-cache.error.log
user=frappe
directory=/home/frappe/bench/sites

[program:bench-redis-queue]
command=/usr/bin/redis-server /home/frappe/bench/config/redis_queue.conf
priority=1
autostart=true
autorestart=true
stdout_logfile=/home/frappe/bench/logs/redis-queue.log
stderr_logfile=/home/frappe/bench/logs/redis-queue.error.log
user=frappe
directory=/home/frappe/bench/sites

[program:bench-node-socketio]
command=/usr/bin/node /home/frappe/bench/apps/frappe/socketio.js
priority=4
autostart=true
autorestart=true
stdout_logfile=/home/frappe/bench/logs/node-socketio.log
stderr_logfile=/home/frappe/bench/logs/node-socketio.error.log
user=frappe
directory=/home/frappe/bench

[group:bench-web]
programs=bench-frappe-web,bench-node-socketio

[group:bench-workers]
programs=bench-frappe-schedule,bench-frappe-default-worker,bench-frappe-short-worker,bench-frappe-long-worker

[group:bench-redis]
programs=bench-redis-cache,bench-redis-queue

I’m new with frappe and it’s a legacy app. Any comments would be very helpful.

1 Like