Nginx: kann ich $server_name bei der Angabe der access-log-Standort?
Ich schreiben will eine config-Datei für ein nginx virtual Hosts sieht wie folgt aus:
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;
}
}
Mit $server_name
scheint zu funktionieren zu finden für die location /static
, aber es scheint nicht zu funktionieren für die access_log
und error_log
-- mache ich etwas falsch? Oder ist das einfach nicht möglich? Kann ich es auf eine andere Weise?
[update] - das ist die Fehlermeldung, wenn Sie versuchen, um neu zu laden nginx:
nginx: [emerg] open() "/home/me/sites/$server_name/logs/error.log" failed (2: No such file or directory)
- Outlook nicht gut.
- Sie müssen die Variablen "$host " #serverfault.com/a/283182
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wollte ich dies auch tun, aber anscheinend by design nginx erweitern können Variablen in der
error_log
Befehl, im Fall es sind Fehler dabei und es kann nicht Holen Sie sich ein Protokoll mit dem Namen zu schreiben, Sie zu.Ihren Vorschlag ist, verwenden Sie ein Programm zum generieren von Konfigurationsdateien statt. Könnten Sie
sed
für diese, um automatisch suchen und ersetzen Sie Ihre eigenen Variablen und platzieren Sie die Ausgabe in der nginx-Konfiguration-Verzeichnis.sed
zu ersetzt in den Hostnamen in mehreren Orten, und achten Sie nicht auf die Wiederholung...