Momenteel ben ik bezig met het bouwen van een basis template voor virtual hosts onder nginx. Hierbij wil ik zowel www naar non-www redirecten als http naar https. Ik ben uitgekomen op de onderstaande configuratie en dit lijkt goed te werken.
Ik heb alleen een vermoeden dat dit netter kan opgesteld kan worden. Zo heb ik bijvoorbeeld twee keer een 301 redirect als ik naar http://www.domain.example/ ga en volgens mij kan dat beter.
In principe heb ik de default template gebruikt die op Ubuntu geïnstalleerd is. Vervolgens heb ik certbot gebruikt met de nginx plugin om een certificaat te krijgen voor domain.example en www.domain.example. Certbot heeft de nodige wijzigingen aangebracht in de config. Daarna heb ik wijzigingen aangebracht voor www naar non-www.
Hebben jullie suggesties voor verbeteren van deze eerste opzet?
Ik heb alleen een vermoeden dat dit netter kan opgesteld kan worden. Zo heb ik bijvoorbeeld twee keer een 301 redirect als ik naar http://www.domain.example/ ga en volgens mij kan dat beter.
In principe heb ik de default template gebruikt die op Ubuntu geïnstalleerd is. Vervolgens heb ik certbot gebruikt met de nginx plugin om een certificaat te krijgen voor domain.example en www.domain.example. Certbot heeft de nodige wijzigingen aangebracht in de config. Daarna heb ik wijzigingen aangebracht voor www naar non-www.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
| server { if ($host = www.domain.example) { return 301 $scheme://domain.example$request_uri; } if ($host != domain.example) { return 404; } root /var/www/html; index index.html index.nginx-debian.html; server_name domain.example www.domain.example; location / { try_files $uri $uri/ =404; } listen 443 ssl default_server; listen [::]:443 ssl ipv6only=on default_server; ssl_certificate /etc/letsencrypt/live/domain.example/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/domain.example/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; } server { if ($host = www.domain.example) { return 301 https://$host$request_uri; } if ($host = domain.example) { return 301 https://$host$request_uri; } listen 80 default_server; listen [::]:80 default_server; server_name domain.example www.domain.example; return 404; } |
Hebben jullie suggesties voor verbeteren van deze eerste opzet?