Nginx: puis-je utiliser $ server_name pour spécifier l’emplacement du journal d’access?

Je veux écrire un fichier de configuration pour un hôte virtuel nginx qui ressemble à ceci:

server { listen 80; server_name www.my-domain-name.com; access_log /home/me/sites/$server_name/logs/access.log; error_log /home/me/sites/$server_name/logs/error.log; location /static { alias /home/me/sites/$server_name/static; } location / { proxy_pass http://localhost:8000; } } 

Utiliser $server_name semble fonctionner pour find location /static , mais cela ne semble pas fonctionner pour access_log et access_log – est-ce que je fais quelque chose de mal? Ou est-ce juste impossible? Puis-je le faire autrement?

[update] – c’est le message d’erreur lorsque vous essayez de recharger nginx:

nginx: [emerg] open() "/home/me/sites/$server_name/logs/error.log" failed (2: No such file or directory)

Je voulais le faire aussi, mais apparemment, nginx ne peut pas étendre les variables de la commande error_log , au cas où il y aurait des erreurs et qu’il ne serait pas possible d’obtenir un nom de fichier pour les écrire.

Leur suggestion est d’utiliser un programme pour générer vos fichiers de configuration à la place. Vous pouvez utiliser sed pour cela, pour rechercher et remplacer automatiquement vos propres variables et placer la sortie dans le répertoire de configuration nginx.