From 98cb2b022dae5ba9ff0819129e1af121c31b0028 Mon Sep 17 00:00:00 2001 From: "Michael M. Chang" Date: Fri, 10 Dec 2021 07:52:47 -0500 Subject: [PATCH 1/7] [searchSegments] ignore if votes <= -2 the ignored parameter should also ignore segments that are downvoted --- src/routes/getSearchSegments.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/getSearchSegments.ts b/src/routes/getSearchSegments.ts index cbfb1f7..3d5e467 100644 --- a/src/routes/getSearchSegments.ts +++ b/src/routes/getSearchSegments.ts @@ -109,7 +109,7 @@ function filterSegments(segments: DBSegment[], page: number, filters: Record filters.maxViews) || (!filters.locked && segment.locked) || (!filters.hidden && segment.hidden) - || (!filters.ignored && (segment.hidden || segment.shadowHidden)) + || (!filters.ignored && ((segment.votes <= -2) || segment.hidden || segment.shadowHidden)) || (filters.categories.length > 0 && !filters.categories.includes(segment.category))) // return false if any of the conditions are met // return true if none of the conditions are met From 292b05443f015be5955efb4d5d09a3d5cdd68c27 Mon Sep 17 00:00:00 2001 From: Michael C Date: Fri, 10 Dec 2021 16:40:34 -0500 Subject: [PATCH 2/7] ignored segments should exclude downvote --- test/cases/getSearchSegments.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/test/cases/getSearchSegments.ts b/test/cases/getSearchSegments.ts index d330f55..2852f90 100644 --- a/test/cases/getSearchSegments.ts +++ b/test/cases/getSearchSegments.ts @@ -120,11 +120,10 @@ describe("getSearchSegments", () => { assert.strictEqual(res.status, 200); const data = res.data; const segments = data.segments; - assert.strictEqual(data.segmentCount, 3); + assert.strictEqual(data.segmentCount, 2); assert.strictEqual(data.page, 0); assert.strictEqual(segments[0].UUID, "search-normal"); - assert.strictEqual(segments[1].UUID, "search-downvote"); - assert.strictEqual(segments[2].UUID, "search-locked"); + assert.strictEqual(segments[1].UUID, "search-locked"); done(); }) .catch(err => done(err)); From e0bf2afdc921cfd2a44d41302fa17d56641f7968 Mon Sep 17 00:00:00 2001 From: Michael C Date: Sat, 18 Dec 2021 18:59:24 -0500 Subject: [PATCH 3/7] nginx tuning - whitespace formatting - added keepalive - buffer access_logs friendship ended with http/2, nginx is my new best friend --- nginx/nginx.conf | 48 +++++++++++++++++++----------------------------- 1 file changed, 19 insertions(+), 29 deletions(-) diff --git a/nginx/nginx.conf b/nginx/nginx.conf index 70781b9..e19429d 100644 --- a/nginx/nginx.conf +++ b/nginx/nginx.conf @@ -21,6 +21,12 @@ http { types { text/csv csv; } + # keepalive settings + keepalive 5; + keepalive_request 10; + keepalive_timeout 5; + proxy_http_version 1.1; + proxy_set_header Connection ""; upstream backend_GET { ip_hash; @@ -32,7 +38,7 @@ http { #server localhost:4446; #server localhost:4447; #server localhost:4448; - server 10.0.0.4:4441; + server 10.0.0.4:4441; #server 10.0.0.3:4441; server 10.0.0.3:4442; @@ -60,8 +66,8 @@ http { upstream backend_db { server 10.0.0.4:4441; #server 10.0.0.3:4441; - #server 10.0.0.4; - } + #server 10.0.0.4; + } upstream backend_db_dl { server 10.0.0.4; @@ -109,7 +115,7 @@ http { #proxy_pass https://sbtest.etcinit.com/; } - #access_log /etc/nginx/logs/requests.log no_ip; + #access_log /etc/nginx/logs/requests.log no_ip buffer=64k; location /api/skipSegments { #return 200 "[]"; @@ -120,11 +126,11 @@ http { #access_log /etc/nginx/logs/download.log no_ip; gzip on; if ($request_method = POST) { - access_log /etc/nginx/logs/submissions.log user_agent; + access_log /etc/nginx/logs/submissions.log user_agent buffer=64k; } #proxy_read_timeout 6s; - #proxy_next_upstream error timeout http_500 http_502; + #proxy_next_upstream error timeout http_500 http_502; } location /api/getTopUsers { @@ -135,7 +141,7 @@ http { location /api/getTotalStats { proxy_pass http://backend_GET; - proxy_cache CACHEZONE; + proxy_cache CACHEZONE; proxy_cache_valid 20m; #return 200 ""; } @@ -145,15 +151,15 @@ http { } location /download/ { - #access_log /etc/nginx/logs/download.log no_ip; + #access_log /etc/nginx/logs/download.log no_ip buffer=64k; gzip on; - proxy_cache CACHEZONE; + proxy_cache CACHEZONE; proxy_cache_valid 20m; #gzip_types text/csv; #gzip_comp_level 1; proxy_pass http://backend_db; - #alias /home/sbadmin/sponsor/docker/database-export/; + #alias /home/sbadmin/sponsor/docker/database-export/; #return 307 https://cdnsponsor.ajay.app$request_uri; } location /database { @@ -196,15 +202,7 @@ http { ssl_certificate_key /etc/letsencrypt/live/sponsor.ajay.app-0001/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 { server_name cdnsponsor.ajay.app; @@ -228,11 +226,7 @@ http { ssl_certificate_key /etc/letsencrypt/live/sponsor.ajay.app-0001/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 { access_log off; @@ -281,9 +275,5 @@ http { ssl_certificate_key /etc/letsencrypt/live/sponsor.ajay.app-0001/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 - - - - -} + } } From 544af7ce155947c73338201f75f6784eb1e31a39 Mon Sep 17 00:00:00 2001 From: Michael C Date: Sat, 18 Dec 2021 21:32:13 -0500 Subject: [PATCH 4/7] remove empty rows from userNames --- src/routes/setUsername.ts | 3 ++- test/cases/setUsername.ts | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/routes/setUsername.ts b/src/routes/setUsername.ts index e31328c..1f24780 100644 --- a/src/routes/setUsername.ts +++ b/src/routes/setUsername.ts @@ -70,7 +70,8 @@ export async function setUsername(req: Request, res: Response): Promise { }) .catch((err) => done(err)); }); + + it("Should delete row if new username is same as publicID", (done) => { + const publicID = getHash(user08PrivateUserID); + postSetUserName(getHash(user08PrivateUserID), publicID) + .then(async () => { + const usernameInfo = await getUsernameInfo(getHash(user08PrivateUserID)); + assert.strictEqual(usernameInfo, null); + done(); + }); + }); }); From 0f4b0c2f54dd9d6dc935046c34128215cfa5f550 Mon Sep 17 00:00:00 2001 From: Ajay Ramachandran Date: Sun, 19 Dec 2021 19:13:49 -0500 Subject: [PATCH 5/7] formatting --- src/routes/setUsername.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/routes/setUsername.ts b/src/routes/setUsername.ts index 1f24780..81e5a54 100644 --- a/src/routes/setUsername.ts +++ b/src/routes/setUsername.ts @@ -70,8 +70,11 @@ export async function setUsername(req: Request, res: Response): Promise Date: Mon, 20 Dec 2021 03:13:29 +0100 Subject: [PATCH 6/7] Update nginx config --- nginx/nginx.conf | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/nginx/nginx.conf b/nginx/nginx.conf index 70781b9..ae044e5 100644 --- a/nginx/nginx.conf +++ b/nginx/nginx.conf @@ -1,9 +1,9 @@ -worker_processes 4; -worker_rlimit_nofile 400000; +worker_processes 6; +worker_rlimit_nofile 800000; worker_shutdown_timeout 10; events { - worker_connections 500000; # Default: 1024 + worker_connections 700000; # Default: 1024 } http { @@ -40,8 +40,11 @@ http { server 10.0.0.5:4441; server 10.0.0.5:4442; - #server 10.0.0.6:4441; - #server 10.0.0.6:4442; + server 10.0.0.6:4441; + server 10.0.0.6:4442; + + #server 10.0.0.8:4441; + #server 10.0.0.8:4442; #server 134.209.69.251:80 backup; From f54b9f7ae1cb6e152fe485223e4ff5f2a6cd1884 Mon Sep 17 00:00:00 2001 From: Ajay Ramachandran Date: Mon, 20 Dec 2021 03:24:54 +0100 Subject: [PATCH 7/7] Fix nginx config issues --- nginx/nginx.conf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/nginx/nginx.conf b/nginx/nginx.conf index d452641..65b2aa3 100644 --- a/nginx/nginx.conf +++ b/nginx/nginx.conf @@ -22,14 +22,15 @@ http { text/csv csv; } # keepalive settings - keepalive 5; - keepalive_request 10; + keepalive_requests 10; keepalive_timeout 5; proxy_http_version 1.1; proxy_set_header Connection ""; upstream backend_GET { ip_hash; + + keepalive 5; #server localhost:4441; #server localhost:4442; #server localhost:4443;