लॉग नाम में चर - nginx


12

मेरे पास nginx में निम्न डिफ़ॉल्ट सर्वर सेटअप है:

# Default HTTP Server
server {
  listen 80 default;
  server_name _;
  access_log /var/log/nginx/$server_name.access.log;
  error_log /var/log/nginx/$server_name.error.log;

  server_name_in_redirect off;

  location / {
    root   domain.com/public;
    index  index.php;
    try_files $uri index.php;
  }

  location ~     \.(html|jpg|jpeg|gif|png|ico|css2|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ {
    root /path/to/domain.com/public;
    expires 30d;
    break;
  }

  charset utf-8;

  location ~ \.php$ {
    include /opt/nginx/conf/fastcgi_params;
    fastcgi_pass  127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param  SCRIPT_FILENAME  /path/to/domain.com/public/index.php;   
  }

  location ~ \.(js|ico|gif|jpg|png|css)$ {
    root /path/to/domain.com/public;
  }
}

मेरे पास सर्वर की ओर इशारा करने वाले कई डोमेन हैं। क्या मैं यहाँ पूरा करने के लिए कोशिश कर रहा हूँ या तो के प्रारूप में लॉग है /var/log/nginx/mydomain.com/access.logया/var/log/nginx/mydomain.com.access.log

इसके बदले मुझे मिल रहा है /var/log/nginx/$server_name.access.log

यदि मैं निर्देशिका विधि का प्रयास करता हूं तो मुझे विन्यास की जांच करते समय एक त्रुटि मिलती है nginx: [emerg] open() "/var/log/nginx/$server_name/access.log" failed (2: No such file or directory)

फाइल के नाम के लिए वैरिएबल पास करना nginx क्यों नहीं है?

Nginx / 1.0.0 का उपयोग करना


तुम कौन सा संस्करण चला रहे हो? लॉग फ़ाइलनामों में चर केवल 0.7.4 के बाद से अनुमत हैं। wiki.nginx.org/HttpLogModule
फ्रैंक किसान

3
और फिर भी, केवल access_log में। चर अभी भी error_log में अनुमत नहीं हैं। $ server_name भी शायद वह चर नहीं है जिसकी आप वास्तव में तलाश कर रहे हैं, क्योंकि यह हमेशा आपके मामले में '_' तक विस्तारित होगा। आप वास्तव में $ होस्ट की तलाश में थे।
kolbyjack

मैं 1.0.0 का उपयोग कर रहा हूं, और $ होस्ट पर पॉइंटर के लिए धन्यवाद - यही मैं पूरा करने की कोशिश कर रहा था। इसके अलावा, सर्वर फॉल्ट का पता नहीं था - माइंड ब्लो, माइग्रेशन के लिए धन्यवाद।
महदी.मोंटगोमरी

1
क्या आजकल के नवीनतम संस्करणों में यह संभव नहीं है?
snh_nl

जवाबों:


6

आपको $hostचर का उपयोग करने की आवश्यकता है - केवल निर्देशों के लिएaccess_log अनुमति दी गई है


2
मुझे लगता है कि error_log के लिए एक चर पास करने के लिए कोई काम नहीं है।
महदी.मोंटगोमरी

2
उपयोग नहीं कर सकते $hostमें चर access_logneighter
सुपर हीरो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.