• Serveurs
  • [Résolu] Problème service Start Nginx

systemctl -l status nginx.service
systemctl -l status nginx

En outre, il s'avère que le message d'erreur est incomplet !
Donc il faut (re)lancer l'une de ces commandes afin de le rectifier. Ce qui devrait nous permettre de déterminer l'origine de ce petit problème.

PS : Pour cette fois, j'accepte de faire une exception. Parce que c'est vraiment étrange que Nginx ne détecte rien...
Encore un rappel ? Exact car depuis la parution de Jessie, nous l'avons expliqué (très régulièrement).
J'entends comment procéder afin de résoudre les défauts de certaines commandes dont systemctl ! Un exemple ? En voilà un d'assez flagrant :

[...] Hint: Some lines were ellipsized, use -l to show in full.

    NOnoS Salut, merci pour le lien .De ce que je comprends rien de particulier de mon coté ?
    Mon nginx .conf :

    user www-data;
    worker_processes auto;
    pid /var/run/nginx.pid;
    
    events {
        worker_connections 1024;
        use epoll; # gestionnaire d'évènements epoll (kernel 2.6+)
    }
    
    http {
        include /etc/nginx/mime.types;
        default_type  application/octet-stream;
    
        access_log /var/log/nginx/access.log combined;
        error_log /var/log/nginx/error.log error;
    
        sendfile on;
        keepalive_timeout 15;
        keepalive_disable msie6;
        keepalive_requests 100;
        tcp_nopush on;
        tcp_nodelay off;
        server_tokens off;
    
    
       gzip on;
        gzip_comp_level 5;
        gzip_min_length 512;
        gzip_buffers 4 8k;
        gzip_proxied any;
        gzip_vary on;
        gzip_disable "msie6";
        gzip_types
            text/css
            text/javascript
            text/xml
            text/plain
            text/x-component
            application/javascript
            application/x-javascript
            application/json
            application/xml
            application/rss+xml
            application/vnd.ms-fontobject
            font/truetype
            font/opentype
            image/svg+xml;
    
        include /etc/nginx/sites-enabled/*.conf;
        include /etc/nginx/ssl/params.conf;
    }

    Wagner Effectivement au tant pour moi !

    nginx.service - nginx - high performance web server
       Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
       Active: failed (Result: exit-code) since jeu. 2019-10-31 17:23:36 CET; 13min ago
         Docs: http://nginx.org/en/docs/
      Process: 12064 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=1/FAILURE)
     Main PID: 978 (code=exited, status=0/SUCCESS)
    
    oct. 31 17:23:36 IP nginx[12064]: nginx: [emerg] unexpected "}" in /etc/nginx/nginx.conf:50
    oct. 31 17:23:36 IP systemd[1]: nginx.service: control process exited, code=exited status=1
    oct. 31 17:23:36 IP systemd[1]: Failed to start nginx - high performance web server.
    oct. 31 17:23:36 IP systemd[1]: Unit nginx.service entered failed state.
    nginx.service - nginx - high performance web server
       Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
       Active: failed (Result: exit-code) since jeu. 2019-10-31 17:19:52 CET; 12s ago
         Docs: http://nginx.org/en/docs/
      Process: 10949 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=1/FAILURE)
     Main PID: 978 (code=exited, status=0/SUCCESS)
    
    oct. 31 17:19:51 adresse IP nginx[10949]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Addre...se)
    oct. 31 17:19:51 adresse IP nginx[10949]: nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Addr...se)
    oct. 31 17:19:51 adresse IP nginx[10949]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Addre...se)
    oct. 31 17:19:51 adresse IP nginx[10949]: nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Addr...se)
    oct. 31 17:19:52 adresse IP nginx[10949]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Addre...se)
    oct. 31 17:19:52 adresse IP nginx[10949]: nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Addr...se)
    oct. 31 17:19:52 adresse IP nginx[10949]: nginx: [emerg] still could not bind()
    oct. 31 17:19:52 adresse IP systemd[1]: nginx.service: control process exited, code=exited status=1
    oct. 31 17:19:52 adresse IP systemd[1]: Failed to start nginx - high performance web server.
    oct. 31 17:19:52 adresse IP systemd[1]: Unit nginx.service entered failed state.
    Hint: Some lines were ellipsized, use -l to show in full.

    Regarde sur cette ligne

    oct. 31 17:23:36 IP nginx[12064]: nginx: [emerg] unexpected "}" in /etc/nginx/nginx.conf:50

    • dam a répondu à ça.

      Bien c'est un léger progrès @dam car il y a quelque chose d'anormal... Donc il va falloir que tu creuse car malheureusement de nos jours, je constate qu'il n'y a toujours aucune amélioration.
      Je vous rappel que l'une des grandes lacunes de Nginx, c'est qu'il nous renseigne parfois mal surtout en fonction des erreurs !
      Parce qu'à cet instant, j'ai exclus le fichier nginx.conf car il n'y a aucune erreur (j'ai vérifier 2 fois alors oui tous les accolades sont présentes).

      ls -all /etc/nginx;
      ## Afin de vérifier qu'il n'existe pas de doublon !
      ls -all /etc/nginx/sites-enabled;
      ## Les fichiers cachés sont parfois la cause d'un tel problème ! Contrôle tous les fichiers contenu dans ce répertoire.
      cat /etc/nginx/ssl/params.conf;
      ## Il manquerait une accolade dans ce fichier ?
      ## C'est possible néanmoins l'erreur peut également se situer dans un autre fichier.
      nginx -t;
      ## Désormais cela donne quelque chose ?
      /etc/init.d/nginx restart;
      ## Sauvegarde tous tes fichiers et relance les 4 commandes.
      ## Avec de la chance, Nginx parviendra à localiser l'erreur ainsi que le fichier.
      

        NOnoS Merci rien sur le fichier de config nginx; Javais justement bien vérifié cette ligne.

        Wagner Alors voici le retour de chaque commande :

        total 60
        drwxr-xr-x  6 root root 4096 oct.  27 11:38 .
        drwxr-xr-x 96 root root 4096 oct.  31 18:31 ..
        drwxr-xr-x  2 root root 4096 juin  15 19:31 conf.d
        -rw-r--r--  1 root root 1007 oct.  17  2017 fastcgi_params
        -rw-r--r--  1 root root 2837 oct.  17  2017 koi-utf
        -rw-r--r--  1 root root 2223 oct.  17  2017 koi-win
        -rw-r--r--  1 root root 5231 avril 23  2019 mime.types
        lrwxrwxrwx  1 root root   22 oct.  17  2017 modules -> /usr/lib/nginx/modules
        -rw-r--r--  1 root root 1120 oct.  31 18:09 nginx.conf
        drwxr-xr-x  2 root root 4096 nov.  25  2017 passwd
        -rw-r--r--  1 root root  636 oct.  17  2017 scgi_params
        drwxr-xr-x  2 root root 4096 nov.  10  2018 sites-enabled
        drwxr-xr-x  2 root root 4096 nov.  25  2017 ssl
        -rw-r--r--  1 root root  664 oct.  17  2017 uwsgi_params
        -rw-r--r--  1 root root 3610 oct.  17  2017 win-utf
         **_A premiere vue pas de doublon ici_**
        
        total 12
        drwxr-xr-x 2 root root 4096 nov.  10  2018 .
        drwxr-xr-x 6 root root 4096 oct.  27 11:38 ..
        -rw-r--r-- 1 root root 3393 août  17 11:31 rutorrent.conf
        **_Je poste mon rutorrent.conf au cas où_** 
        
        ssl_session_timeout 1d;
            ssl_session_cache shared:SSL:50m;
            ssl_session_tickets off;
        
            ssl_ecdh_curve secp384r1;
        
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
            ssl_ciphers "ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-..................";
        
            ssl_prefer_server_ciphers on;
        
            add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
            add_header X-Content-Type-Options nosniff;
            add_header X-Frame-Options "SAMEORIGIN";
            add_header X-XSS-Protection "1; mode=block";
            add_header X-Robots-Tag none;
        
            ssl_stapling on;
            ssl_stapling_verify on;
        
            ssl_trusted_certificate /etc/letsencrypt/live/mondomaine.com/fullchain.pem;
        
            resolver 8.8.8.8;
            **_Difficile pour moi de confirmer quoi que se soit sur ce point._**
        server {
                   listen 80 default_server;
                   listen 443 ssl http2 default_server;
                   server_name mondomaine.com;
                
        
                index index.html index.php;
                charset utf-8;
                client_max_body_size 10M;
            ssl_certificate /etc/letsencrypt/live/mondomaine.com-0001/fullchain.pem; # managed by Certbot
            ssl_certificate_key /etc/letsencrypt/live/mondomaine.com-0001/privkey.pem; # managed by Certbot
        
                include /etc/nginx/conf.d/ciphers.conf;
        
                access_log /var/log/nginx/rutorrent-access.log combined;
                error_log /var/log/nginx/rutorrent-error.log error;
        
                error_page 500 502 503 504 /50x.html;
        
                auth_basic "seedbox";
                auth_basic_user_file "/etc/nginx/passwd/rutorrent_passwd";
        
                root /var/www;
        
                location = /favicon.ico {
                        access_log off;
                        log_not_found off;
                }
        
                location = /50x.html {
                        root /usr/share/nginx/html;
                }
        
                location ~ \.php$ {
                        fastcgi_index index.php;
                        include /etc/nginx/fastcgi_params;
                        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                        fastcgi_pass unix:/var/run/php5-fpm.sock;
                }
        
                location ~* \.(jpg|jpeg|gif|css|png|js|map|woff|woff2|ttf|svg|eot)$ {
                        expires 30d;
                        access_log off;
                }
        
                location ~* \.(eot|ttf|woff|svg)$ {
                        add_header Acccess-Control-Allow-Origin *;
                }
          ## Config accueil serveur ##
        
                location ^~ / {
                        root /var/www/base;
                        include /etc/nginx/conf.d/php.conf;
                        include /etc/nginx/conf.d/cache.conf;
                        satisfy any;
                        allow all;
                }
        
                ## Config rutorrent ##
        
                location /rutorrent {
                        try_files $uri $uri/ /index.html;
                }
        
                location ~ ^/rutorrent/(conf|share)/(.+)$ {
                        deny all;
                }
        
        
        
                ## Config munin ##
        
                location /graph {
                }
        
                location /graph/img {
                        error_log /dev/null crit;
                }
        
                location /monitoring {
                        auth_basic "Monitoring";
                        auth_basic_user_file "/etc/nginx/passwd/rutorrent_passwd_....";
                }
        
                location ^~ /nginx_status {
                        stub_status on;
                        access_log off;
                        satisfy any;
                        allow 127.0.0.1;
                        deny all;
                }
        
                ## Config seedbox-manager ##
        
                location /seedbox-manager {
        try_files /seedbox-manager/$uri /seedbox-manager/index.php$is_args$args;
                }
        
                ## Config utilisateurs ##
        
                location /..... {
                        include scgi_params;
                        scgi_pass 127.0.0.1:5001;
                        auth_basic "seedbox";
                        auth_basic_user_file "/etc/nginx/passwd/rutorrent_passwd_...";
          }
        
        }

        Hello @dam ,

        Comme dit @Wagner nginx est assez capricieux sur les lignes qu'il indique toute fois depuis quelques temps je me rend compte que les lignes indiqués ne compte pas les lignes vides. Bref

        Il y'a plusieurs truc qui me chagrine :
        31 17:19:51 adresse IP nginx[10949]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Addre...se)
        n'ayant pas la ligne complète je dirais que quelques choses tourne deja sur les ports 80 et 443 .
        Par déduction je dirais que la fin de la phrase serait : Address already use
        Un parefeu d'installer récemment ?

        Pour moi cette ligne :
        ssl_trusted_certificate /etc/letsencrypt/live/mondomaine.com/fullchain.pem;
        devrait correspondre avec celles ci :
        ssl_certificate /etc/letsencrypt/live/mondomaine.com-0001/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/mondomaine.com-0001/privkey.pem; # managed by Certbot

        soit :
        ssl_trusted_certificate /etc/letsencrypt/live/mondomaine.com-0001/chain.pem;

        Au passage j'ai jamais vu certbot ajouter 0001...

        Après quel manoeuvres sur ton serveur la commande nginx ne redémarre pas ? qu'est ce que tu as fait qui a nécessité l'arrêt et le redémarrage de nginx ?

        Comment tu as récupérer le fichier nginx.conf ? tu es sur de l'avoir lu en entier ?

        Est ce que le début de ton rutorrent.conf commence bien par ce que tu as indiqué ? si oui il y' a une erreur :
        erver {
        devrait etre :
        server {

        Et le retour de la commande nginx -t ??

        • dam a répondu à ça.

          Salut MattProd .
          Comme je n'ai pas trop suivi les problèmes lier a nginx je t’avouerais que je n'ai jamais trop fait attention à çà.

          Et n'ayant pas eu de souci particulier depuis maintenant plus de 2 ans ..

           Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
             Active: failed (Result: exit-code) since ven. 2019-11-01 12:25:51 CET; 1 day 5h ago
               Docs: http://nginx.org/en/docs/
            Process: 21774 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=1/FAILURE)
           Main PID: 978 (code=exited, status=0/SUCCESS)
          
          nov. 01 12:25:49  nginx[21774]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
          nov. 01 12:25:49  nginx[21774]: nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
          nov. 01 12:25:50  nginx[21774]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
          nov. 01 12:25:50  nginx[21774]: nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
          nov. 01 12:25:50  nginx[21774]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
          nov. 01 12:25:50  nginx[21774]: nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
          nov. 01 12:25:51  nginx[21774]: nginx: [emerg] still could not bind()
          nov. 01 12:25:51  systemd[1]: nginx.service: control process exited, code=exited status=1
          nov. 01 12:25:51  systemd[1]: Failed to start nginx - high performance web server.
          nov. 01 12:25:51  systemd[1]: Unit nginx.service entered failed state.
          nov. 02 17:48:01  systemd[1]: Stopped nginx - high performance web server.

          Voici pour les 2 ports

          tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      23759/nginx.conf
          tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      23759/nginx.conf

          Aucun parfeu d'installer récemment.

          Concernant Cerbot celui-ci n'est plus présent depuis quelque temps. Comme le renouvellement automatique n'a jamais fonctionner je suis rester en mode manuel. Par contre effectivement j'ai un peu zappé la modification à apporter sur ce fichier.
          Ce qui m’amène à cette histoire de renouvellement, je crois que le problème est arriver suite à cette manip il y a 3 jours.
          D’où mon redémarrage.
          Pour moi il est bien complet.

          nano /etc/nginx/nginx.conf
          user www-data;
          worker_processes auto;
          pid /var/run/nginx.pid;
          
          events {
              worker_connections 1024;
              use epoll; # gestionnaire d'évènements epoll (kernel 2.6+)
          }
          
          http {
              include /etc/nginx/mime.types;
              default_type  application/octet-stream;
          
              access_log /var/log/nginx/access.log combined;
              error_log /var/log/nginx/error.log error;
          
              sendfile on;
              keepalive_timeout 15;
              keepalive_disable msie6;
              keepalive_requests 100;
              tcp_nopush on;
              tcp_nodelay off;
              server_tokens off;
          
              gzip on;
              gzip_comp_level 5;
              gzip_min_length 512;
              gzip_buffers 4 8k;
              gzip_proxied any;
              gzip_vary on;
              gzip_disable "msie6";
              gzip_types
                  text/css
                  text/javascript
                  text/xml
                  text/plain
                  text/x-component
                  application/javascript
                  application/x-javascript
                  application/json
                  application/xml
                  application/rss+xml
                  application/vnd.ms-fontobject
                  font/truetype
                  font/opentype
                  image/svg+xml;
             include /etc/nginx/sites-enabled/*.conf;
              include /etc/nginx/ssl/params.conf;
          }

          Mon rutorrent.conf est ok. Le server { est bien present.

          Toujours la même chose .

          nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
          nginx: configuration file /etc/nginx/nginx.conf test is successful

          edit : ajout ligne complète . Effectivement ce problème de ligne incomplète est un peu pénible
          edit 2 : affaire résolu.

          fuser -k 80/tcp
          fuser -k 443/tcp
          service nginx restart

          @dam Ok merci pour les retours 🙂

          Si tu pars sur un :
          root@localhost# fuser -k 443/tcp
          root@localhost# fuser -k 80/tcp

          suivi d'un
          service nginx restart ?

          • dam a répondu à ça.
            dam a renommé le titre en [Résolu] Problème service Start Nginx.

            MattProd C'est bien reparti.
            Bon par contre je ne sais pas encore de quoi ça vient.
            edit : peut être le fait de ne pas avoir stopper nginx pour le renouvellement de mon certificat ?

              dam c'est un probleme qui date de 2015 😉 mais aucune idée de pourquoi du comment la tout de suite

              @dam [...] le renouvellement de mon certificat ?

              Exact cela pourrait venir de là. En tout cas, je sais qu'il reste des problèmes et oui encore de nos jours...
              D'ailleurs j'avais évoqué ma mauvaise expérience à l'époque...
              Comme cela fait longtemps (et que celui-là va rester vide) alors je remettre mon texte ci-dessous :

              Cependant, je viens de découvrir qu'avec certbot, il y a parfois des bugs dont voici un (très léger) résumé :

              [...]Failed to start LSB: Stop/start nginx.
              Unit nginx.service entered failed state.

              Donc, dans cette situation, il vous faudra d'abord consulter la liste des programmes actifs grâce à une commmande comme celle-ci :
              ps -ef | grep nginx

              Ensuite, pour tous les arrêter (comme sur l'image ci-dessus), il vous faudra vous servir d'une commande tel que :

              kill -9 `pgrep nginx`;

              Voilà, désormais vous devriez pouvoir (re)démarrer nginx.

                Wagner c'est quand tu arrete nginx avant de renouveller ton certif ou ca fait partit de la tache cron ?

                @monthly /root/letsencrypt/letsencrypt-auto renew --pre-hook "service nginx stop" --post-hook "service nginx start"

                apres mon copain python fait bien tourner le plugin nginx, pas de --pre-hook et de --post hook maintenant et pas de dossier well know acme ... juste l'option --nginx fait bien le café avec nginx 🙂

                Salut @Wagner.
                Merci pour ton retour d'information.
                Pour Cerbot j'ai toujours utilisé ce tuto et qui jusqu’à présent ne m'avait pas causé de problème.
                J'ai essayé https://certbot.eff.org/lets-encrypt/debianjessie-nginx sans grand succès.
                Le renouvellement automatique j'en parle même pas...
                J'ai voulu passé le gestionnaire Emby en HTTPS avec Letsencrypt, pareil, obligé de faire un truc à l'arrache.
                A mon avis j'ai un souci quelque part mais comme j'ai pas trop le temps de m'en occuper, je procède de cette façon et ça fonctionne.
                Merci @MattProd pour ton aide.

                un mois plus tard

                Non ce n'était pas une tache cron (cela adviendra peut-être un jour car je m'en sers jamais).
                Pourtant (comme d'habitude) j'avais suivi le tutoriel mais il y a eu un bug quelque part... Donc ce court résumé raconte ma toute première mésaventure afin de le créer (le certif).

                C'est assez dur de m'en souvenir car cela remonte à plusieurs années et je n'ai pas compris grand chose sur l'origin de ce bug. Alors j'ai décidé de renoncer car nginx ne répondait plus du tout (aucunes des commandes habituelles). Ensuite, j'ai fini par comprendre au bout d'un moment que certbot n'avait pas fonctionné correctement sic... J'en ai obtenu la confirmation en consultant la liste des processus car nginx continuait à tourner en boucle sans fin.
                .
                Merci @MattProd car t'as raison, c'est un bon copain python. 🙂 Cela nous fait un autre point en commun car je te confirme qu'il fait bien le café dans d'autres domaines. Lorsque j'aurais du temps (de l'énergie, etc), je penserais à regarder ce qu'il pourrait faire avec nginx.

                De rien @dam car je présume qu'il y a toujours des bugs sic... D'ailleurs merci car tu me le confirme alors pour le moment, je risque de mettre ce sujet de côté. En tout cas, je m'en occuperais un de ces jours car il me reste des choses à revoir parmi mes notes (Fail2ban, etc).

                PS: Cela fait du boulot de gérer 3 machines (serveur, PC et le smartphone en dernier car cela me paraît compliqué).

                Répondre…