3.5.4. Nginx

Note : L'utilisation de nginx nécessite plus de paramétrage et de bonnes connaissances de la configuration de serveur Web. La plupart des utilisateurs préféreront utiliser Apache à la place.

Vous pouvez utiliser Bugzilla avec nginx en utilisant la méthode d'émulation CGI traditionnelle avec fcgiwrap, en tant qu'application PSGI utilisant le handler FCGI Plack, ou via un proxy vers un serveur gérant directement CGI ou PSGI. Cette dernière méthode n'est pas recommandée et ne sera pas abordée plus avant.

Pour l'utilisation de fcgiwrap, configurez-le de la manière habituelle.

Pour l'utilisation de Plack, installez-le, puis faire exécuter cette commande au démarrage :

plackup -s FCGI --listen /run/bugzilla.sock /var/www/html/bugzilla/app.psgi

Pour toutes les configurations :

Il est fortement recommandé de configurer un utilisateur système spécifique pour Bugzilla et de définir la variable $use_suexec dans le fichier localconfig à 1. Quoi qu'il en soit, assurez-vous que $webservergroup soit défini avec l'utilisateur exécutant actuellement Bugzilla.

Utilise le paramétrage suivant en l'ajustant à vos besoins. Des crochets sont placés autour des chaines qui doivent être modifiées.

server {
    server_name <bugs.example.com>;

    root </var/www/html/bugzilla>;

    # Facultatif si vous n'avez pas le module autoindex ou s'il est déjà désactivé
    autoindex off;

    # Ceci ne doit pas générer de conflits. Consulter la documentation nginx sur « location » pour plus
    # d'informations.
    location /attachments { return 403; }
    location /Bugzilla { return 403; }
    location /lib { return 403; }
    location /template { return 403; }
    location /contrib { return 403; }
    location /t { return 403; }
    location /xt { return 403; }
    location /data { return 403; }
    location /graphs { return 403; }
    location /rest {
        rewrite ^/rest/(.*)$ rest.cgi/$1 last;
    }

    location ~ (\.pm|\.pl|\.psgi|\.tmpl|localconfig.*|cpanfile)$ { return 403; }
    # if you are using webdot. adjust the IP to point to your webdot server.
    #location ~ ^/data/webdot/[^/]*\.dot$ { allow 127.0.0.1; deny all; }
    location ~ ^/data/webdot/[^/]*\.png$ { }
    location ~ ^/graphs/[^/]*\.(png|gif) { }
    location ~ \.(css|js)$ {
        expires 1y;
        add_header Cache-Control public;
    }
    location ~ \.cgi$ {
        location ~ ^/(json|xml)rpc\.cgi {
            # authenticated queries contain plain text passwords in the
            # query string, so we replace $request with $uri. adjust if you
            # aren't using "combined" log format.
            access_log </var/log/nginx/bugzilla.log>
                '$remote_addr - $remote_user [$time_local] '
                '"$uri" $status $body_bytes_sent '
                '"$http_referer" "$http_user_agent"';
        }
        include fastcgi_params;
        # omit the following two lines if using fcgiwrap
        fastcgi_param SCRIPT_NAME '';
        fastcgi_param PATH_INFO $uri;
        fastcgi_param BZ_CACHE_CONTROL 1;
        fastcgi_pass <unix:/run/bugzilla.sock>;
    }

    # Facultatif mais fortement recommandé en raison de la grande taille de ces fichiers
    gzip on;
    # Ajouter les types globaux que vous avez spécifiés.
    gzip_types text/xml application/rdfxml;
}