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.