After configuring multiple domains and some subdomains to operate under nginx I've managed to get multiple server blocks to work ok. Still left with the messy results as below.
This after setting up multiple domains, using certbot to create certificates and edit nginx config files.
Looking at the nginx config files, it's obvious this would be a lot cleaner if the original default config file had been stripped of commented out lines. Still seeing a few weird apparent duplicates of server blocks for domains in the default config file.
I am using static files served under nginx for domain.tld & www.domain.tld with nodejs serving blah.domain.tld, tho this mix may vary in future.
So some quick questions on good/bad practice. - one certificate to cover domain.tld, www.domain.tld and blah.domain.tld ? - should /etc/nginx/sites-available/default exclude all server block references to the various domains configured in /etc/nginx/sites-available/domain.tld ? - it seems certbot edits /etc/nginx/sites-available/default to add references for the various domain configs. I'm loath to edit any config files edited by certbot, but the chaotic mess of duplicates indicates a cleanup can be done.
also: what might the suspicious symbols be?
sudo nginx -t
nginx: [warn] server name "blah.domain.tld/" has suspicious symbols in /etc/nginx/sites-enabled/blah.domain.tld:41
nginx: [warn] conflicting server name "www.domain.tld" on [::]:443, ignored
nginx: [warn] conflicting server name "blah.domain.tld" on [::]:443, ignored
nginx: [warn] conflicting server name "www.domain.tld" on 0.0.0.0:443, ignored
nginx: [warn] conflicting server name "blah.domain.tld" on 0.0.0.0:443, ignored
nginx: [warn] conflicting server name "www.domain.tld" on 0.0.0.0:80, ignored
nginx: [warn] conflicting server name "blah.domain.tld" on 0.0.0.0:80, ignored
nginx: [warn] conflicting server name "www.domain.tld" on [::]:80, ignored
nginx: [warn] conflicting server name "blah.domain.tld" on [::]:80, ignored
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Next block
ubuntu@blah:/etc/nginx/sites-available$ grep -rn ' domain.tld' /etc/nginx/sites-available/
/etc/nginx/sites-available/domain.tld:39: server_name domain.tld;
/etc/nginx/sites-available/domain.tld:96: if ($host = domain.tld) {
/etc/nginx/sites-available/domain.tld:104: server_name domain.tld;
Next block
ubuntu@blah:/etc/nginx/sites-available$ grep -rn ' www.domain.tld' /etc/nginx/sites-available/
/etc/nginx/sites-available/blah.domain.tld:110: server_name www.domain.tld; # managed by Certbot
/etc/nginx/sites-available/blah.domain.tld:148: if ($host = www.domain.tld) {
/etc/nginx/sites-available/blah.domain.tld:155: server_name www.domain.tld;
/etc/nginx/sites-available/default:110: server_name www.domain.tld; # managed by Certbot
/etc/nginx/sites-available/default:148: if ($host = www.domain.tld) {
/etc/nginx/sites-available/default:155: server_name www.domain.tld;
Next block
ubuntu@blah:/etc/nginx/sites-available$ grep -rn ' blah.domain.tld' /etc/nginx/sites-available/
/etc/nginx/sites-available/blah.domain.tld:41: server_name blah.domain.tld/;
/etc/nginx/sites-available/blah.domain.tld:182: server_name blah.domain.tld; # managed by Certbot
/etc/nginx/sites-available/blah.domain.tld:219: if ($host = blah.domain.tld) {
/etc/nginx/sites-available/blah.domain.tld:226: server_name blah.domain.tld;
/etc/nginx/sites-available/default:182: server_name blah.domain.tld; # managed by Certbot
/etc/nginx/sites-available/default:219:
if ($host = blah.domain.tld) {
/etc/nginx/sites-available/default:226: server_name blah.domain.tld;