Tôi có thiết lập máy chủ mặc định sau trong 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;
}
}
Tôi có một số tên miền trỏ đến máy chủ. Những gì tôi đang cố gắng thực hiện ở đây là có các bản ghi ở định dạng /var/log/nginx/mydomain.com/access.log
hoặc/var/log/nginx/mydomain.com.access.log
Thay vào đó, tôi đang nhận được /var/log/nginx/$server_name.access.log
.
Nếu tôi thử phương thức thư mục, tôi gặp lỗi khi kiểm tra cấu hình nginx: [emerg] open() "/var/log/nginx/$server_name/access.log" failed (2: No such file or directory)
Tại sao nginx không chuyển biến vào tên tệp?
Sử dụng nginx / 1.0.0
Phiên bản nào bạn đang chạy? Các biến trong tên tệp nhật ký chỉ được phép kể từ 0.7.4. wiki.nginx.org/HttpLogModule
—
Nông dân Frank
và thậm chí sau đó, chỉ trong access_log. Các biến vẫn không được phép trong error_log. $ server_name có lẽ cũng không phải là biến bạn thực sự tìm kiếm, vì nó sẽ luôn mở rộng thành '_' trong trường hợp của bạn. Bạn có thể đã thực sự tìm kiếm $ host.
—
kolbyjack
Tôi đang sử dụng 1.0.0 và cảm ơn con trỏ trên $ host - đó là điều tôi đang cố gắng thực hiện. Ngoài ra, không biết Server Fault tồn tại - tâm trí bị thổi bay, cảm ơn vì sự di chuyển.
—
Mahdi.Monteimery
điều này là không thể hiện nay trong các phiên bản mới nhất?
—
snh_nl