To a browser and to a search engine, /about and /about/ are two addresses. If both return 200 you have two copies of every page. The fix is to choose one form and redirect the other - and the way that goes wrong is a loop.

Choose one

# nginx: no trailing slash\nrewrite ^/(.*)/$ /$1 permanent;\n\n# nginx: with a trailing slash\nrewrite ^([^.]*[^/])$ $1/ permanent;

The second pattern deliberately excludes anything containing a dot, so files - /logo.png, /robots.txt - are not sent to /logo.png/.

The loop

Two rules that disagree - one adding the slash, one removing it - produce an endless redirect. It usually happens when the web server has one rule and the application framework has the opposite one. Fix it in ONE place, and the place should be the application if it has an opinion.
curl -sSIL https://example.com/about | grep -E '^HTTP|^location' | head -10

More than one redirect in that output, or the same two addresses alternating, is the loop. See redirect loops.

Directories are the exception

A real directory needs the trailing slash: without it, relative links inside the page resolve one level too high, so the CSS and images break while the HTML loads. Web servers redirect to add it for a reason.

Say which one is canonical

<link rel="canonical" href="https://example.com/about">
Whichever you choose, make the sitemap, the canonical tag and the internal links agree with it. A site that links internally to the form it then redirects away from pays a round trip on every click.