ตัวแปรในชื่อบันทึก - 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
Frank Farmer

3
และแม้กระทั่งใน access_log เท่านั้น ตัวแปรยังไม่ได้รับอนุญาตใน error_log $ server_name อาจไม่ใช่ตัวแปรที่คุณกำลังมองหาเพราะมันจะขยายเป็น '_' เสมอในกรณีของคุณ คุณอาจกำลังมองหา $ host
kolbyjack

ฉันใช้ 1.0.0 และขอบคุณสำหรับตัวชี้บน $ host - นั่นคือสิ่งที่ฉันพยายามทำ อีกทั้งไม่ทราบว่ามีข้อผิดพลาดของเซิร์ฟเวอร์อยู่ - โปรดแจ้งขอบคุณสำหรับการย้ายข้อมูล
Mahdi.Montgomery

1
ปัจจุบันนี้เป็นไปไม่ได้ในรุ่นล่าสุดหรือไม่
snh_nl

คำตอบ:


6

คุณต้องใช้$hostตัวแปร - อนุญาตสำหรับaccess_logคำสั่งเท่านั้น


2
ฉันจะสมมติว่าไม่มีการแก้ไขสำหรับการส่งตัวแปรสำหรับ error_log .. ซึ่งเป็นประเภทที่เลวร้ายเกินไป
Mahdi.Montgomery

2
ไม่สามารถใช้$hostตัวแปรในaccess_logneighter
superhero
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.