recherche

Maison  >  Questions et réponses  >  le corps du texte

nginx n'a pas réussi à fermer access.log

fichier de configuration nginxnginx.conf :

user  www www;


worker_processes 8;

worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

error_log  /home/wwwlogs/nginx_error.log  crit;

pid        /usr/local/nginx/logs/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65536;

events
    {
        use epoll;
        worker_connections 65536;
    }

http
    {
        include       mime.types;
        default_type  application/octet-stream;

        server_names_hash_bucket_size 128;
        client_header_buffer_size 32k;
        large_client_header_buffers 4 32k;
        client_max_body_size 50m;

        open_file_cache max=102400 inactive=20s;
        open_file_cache_valid 30s;
        open_file_cache_min_uses 1;

        sendfile on;
        tcp_nopush     on;

        keepalive_timeout 90;

        tcp_nodelay on;

        fastcgi_connect_timeout 1200;
        fastcgi_send_timeout 1200;
        fastcgi_read_timeout 1200;
        fastcgi_buffer_size 256k;
        fastcgi_buffers 16 256k;
        fastcgi_busy_buffers_size 512k;
        fastcgi_temp_file_write_size 1024k;
        fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2
                keys_zone=TEST:10m
                inactive=5m;
                         


        gzip on;
        gzip_min_length  1k;
        gzip_buffers     4 16k;
        gzip_http_version 1.0;
        gzip_comp_level 2;
        gzip_types       text/plain application/x-javascript text/css application/xml;
        gzip_vary on;
        gzip_proxied        expired no-cache no-store private auth;
        gzip_disable        "MSIE [1-6]\.";

        #limit_zone  crawler  $binary_remote_addr  10m;

        server_tokens off;
        #log format
        #log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
                 #'$status $body_bytes_sent "$http_referer" '
                 #'"$http_user_agent" $http_x_forwarded_for';
        
        # 关闭access.log
        access_log /dev/null;

server
    {
        listen       80;
        server_name aaa.abc.com;
        index index.html index.htm index.php;
        root  /home/wwwroot/abc.com;

        location ~ ^/(abc_status)$ 
            {
                include fcgi.conf;
                fastcgi_pass unix:/tmp/php-cgi.sock;
            }
        location ~ .*\.(php|php5)?$
            {
                try_files $uri =404;
                fastcgi_pass  unix:/tmp/php-cgi.sock;
                fastcgi_index index.php;
                include fcgi.conf;
            }

        location /status {
            stub_status on;
            #access_log /dev/null;
        }
        location /guide{
            rewrite ^([^\.]*)/wenda/(\w+)/(\w+)\.html$ /index.php?r=wenda// last;
            rewrite ^([^\.]*)/([a-zA-Z]+)/([a-zA-Z]+)\.html$ /index.php?r=/ last;
        }
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
            {
                expires      30d;
            }

        location ~ .*\.(js|css)?$
            {
                expires      12h;
            }
    
    # 关闭access.log
    access_log off;

    # access_log  /home/wwwlogs/access.log  access;
    }
include vhost/*.conf;
}


Tous les fichiers de configuration du sous-site ne sont pas configurés avec access_log off

Ce qui suit est un fichier de configuration de sous-sitevhost/app3.abc.com.conf :

server
    {
        listen       80;
        server_name app3.abc.com;
        index index.html index.htm index.php default.html default.htm default.php;
        root  /home/wwwroot/abc.com/guide;
        location ~ .*\.(php|php5)?$
            {
                try_files $uri =404;
                fastcgi_pass  unix:/tmp/php-cgi.sock;
                fastcgi_index index.php;
                include fcgi.conf;
            }
        location /{

            rewrite ^([^\.]*)/wenda/(\w+)/(\w+)\.html$ /index.php?r=wenda// last;

            #rewrite ^([^\.]*)/([a-zA-Z]+)/([a-zA-Z]+)\.html$ /index.php?r=/ last;        
                        
            if (!-e $request_filename) {
                return 404;
            }
        }
        
        location /ueditor{
            autoindex on;
            }        
        
        location ~ .*\.(gif|jpeg|png|bmp|swf)$
            {
                expires      30d;
            }

        location ~ .*\.(js|css)?$
            {
                expires      12h;
            }

        #access_log  /home/wwwlogs/visit.log  access;
        error_log  /home/wwwlogs/wenda_error.log  crit;
        }

Il existe de nombreux fichiers de configuration de sous-site, mais aucun d'entre eux n'a configuré access_log off

Après avoir passé la configuration ci-dessus, chaque fois que le fichier nginx/logs/access.loglog est supprimé, un nouveau fichier journal access.log sera généré le lendemain, d'une taille d'environ 1 Go. L'exigence de l'entreprise est de désactiver la fonction access.log de nginx, ce qui signifie ne pas autoriser nginx à enregistrer les journaux d'accès. Quelqu'un a-t-il une meilleure solution ? Merci beaucoup!

黄舟黄舟2751 Il y a quelques jours1222

répondre à tous(2)je répondrai

  • phpcn_u1582

    phpcn_u15822017-05-16 17:18:07

    La réponse a été trouvée.

    En fait, le access_log /dev/null; mentionné sur Internet concerne uniquement le error_log de nginx. Si vous souhaitez désactiver error_log, utilisez error_log /dev/null (voyez comment les étrangers font cela). access_log /dev/null; 只是针对nginx的error_log而言的。如果想关闭error_log,那么就用error_log /dev/null(看老外是这么做的)。

    但是想关闭access_log的话,直接在nginx.conf的http模块中配置access_log off;即可。需要注意的是,已经继承了http模块的那些模块不要再设置access_log off;了。 比如,我已经在http模块中设置了access_log off;,那么就不要在http模块所包含的server模块或location模块中设置access_log off;,以及虚拟主机目录(vhost)下的配置文件也不要添加access_log off;

    Mais si vous souhaitez désactiver access_log, configurez simplement access_log off; directement dans le module http de nginx.conf. Il convient de noter que les modules qui ont hérité du module http ne doivent plus définir access_log off;. Par exemple, si j'ai défini access_log off; dans le module http, alors ne définissez pas access_log off; dans le module serveur ou le module de localisation inclus dans le module http, et virtual N'ajoutez pas access_log off; au fichier de configuration sous le répertoire hôte (vhost).

    Pure expérience pratique en environnement de production. 🎜

    répondre
    0
  • 仅有的幸福

    仅有的幸福2017-05-16 17:18:07

    Ne pouvez-vous pas configurer le chemin du journal sur /dev/null ?

    répondre
    0
  • Annulerrépondre