
由Script House收集和编译的本文主要介绍了nginx不在日志文件中记录错误. Script House的编辑感觉很好. 现在,我将与您分享并提供参考.
我最近将CentOS 7机器从Apache移到了nginxnginx日志文件在哪nginx日志文件在哪,但我仍在研究这些差异. 我只注意到服务器块的一个问题是访问和错误日志文件并未实际记录,因此很难解决潜在的问题.
我的网站的服务器块如下:

server {
listen 80;
server_name example.com;
root /var/www/example.com/public_html;
index index.php;
access_log /var/www/example.com/logs/example.com_access.log;
error_log /var/www/example.com/logs/example.com_error.log error;
location / {
index index.php index.html;
}
location /reports {
autoindex on;
}
location ~ \.php${
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
error_page 404 /var/www/html/404.html;
error_page 500 502 503 504 /var/www/html/50x.html;
location ~* \.(js|css|png|jpg|jpeg|gif|ico)${
expires max;
log_not_found off;
}
location /robots.txt {
#access_log off;
#log_not_found off;
}
location ~ /\.ht {
deny all;
}
}
我不确定为什么不保存日志. 我比较了服务器块上的文件权限,它们都共享相同的权限.
-rw-r--r--. 1 nginx root 0 Nov 7 02:54 example.com_access.log
-rw-r--r--. 1 nginx root 0 Nov 7 02:54 example.com_error.log

为什么不存储日志会出现问题?
最佳答案
此处的Nginx语法是正确的,因此问题与服务器环境有关. 以下是一些调试方法.

>模拟Web服务器将执行的操作. 尝试使用Web服务器将用于写入文件的同一用户. 如果Web服务器用户是nginx,请以root身份尝试:
su -m nginx -c'回显“测试” >> /var/www/example.com/logs/example.com_error.log”
>观察Web服务器在做什么. 作为临时调试措施,请在Nginx配置的顶部添加. 然后停止Nginx并启动strace nginx |从中获取nginx-output.txt. 然后它将在前台运行,并将对STDOUT的所有系统调用喷出,这也将在nginx-output.txt中捕获. “执行某些操作”会触发错误,然后您可以停止Nginx,删除“守护程序”行并在查看调试日志It时正常启动. 在其中搜索有关文件名的内容. 也许您会在这里找到它,系统调用返回的错误尝试访问该文件.

另一种可能性是您不同意Nginx在错误日志中应显示的内容. 如果是nginx -V | grep debug获取结果,然后可以将error_log的最后一个参数从error更改为debug. 重新加载Nginx并单击域中不存在的URL,这将生成大量日志记录. 完成后关闭调试日志记录.
以上是脚本库为您收集的nginx,未在日志文件中记录错误. 我希望本文能帮助您解决nginx遇到的未在日志文件中记录错误的程序开发问题.
如果您认为Script House网站的内容不错,欢迎向您的程序员朋友推荐Script House网站.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-274045-1.html
在忙吗