seelixe

  • 30 janv. 2018
  • Inscrit 5 sept. 2017
  • Je vais un peu mélanger mais... également, j'ai remarqué que mon nextcloud ne prend pas en compte un/des include(s)

    headers_params

    add_header X-Frame-Options SAMEORIGIN;
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection "1; mode=block";

    Le vhost de mon nextcloud

    server {
      listen 8000;
      server_name xx.xxxxx.com;
      return 301 https://$host$request_uri;
    }
    
    server {
      listen 4430 ssl http2;
      server_name xx.xxxxx.com;
    
      ssl_certificate /certs/xxxx.com/fullchain.pem;
      ssl_certificate_key /certs/xxx.com/privkey.pem;
    
      include /conf.d/ssl_params;
      include /conf.d/headers_params;
    
      add_header Strict-Transport-Security "max-age=31536000;includeSubDomains;preload";
      client_max_body_size 50M;
    
      #auth_basic "Who's this?";
      #auth_basic_user_file /passwds/<NAME>.htpasswd;
    
      location / {
        proxy_pass http://nextcloud:8888;
        include /conf.d/proxy_params;
      }
    }
    

    Pas d'erreur nginx, pensez-vous que Cloudflare peut-être à l'origine ?

  • Aeryax Il fonctionne oui, mais dès que je lance un deuxième conteneur wordpress ou ghost, il se fait marcher dessus. J'ai essayé de modifier le docker-compose mais rien n'y fait pour l'instant:

      CONTENEUR:
        depends_on:
          - db_XXX
        links:
          - db_XXX
        image: wordpress:latest
        container_name: XXX
        restart: always
        volumes:
          - /mnt/docker/XXX:/var/www/html
          - /mnt/docker/XXX/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
        environment:
          - WORDPRESS_TABLE_PREFIX=wp_
          - WORDPRESS_DB_HOST=db_XXX
          - WORDPRESS_DB_USER=XXX
          - WORDPRESS_DB_PASSWORD=XXX
          - WORDPRESS_DB_NAME=XXX
          - VIRTUAL_HOST=www.ndd.com

    Cloudflare me fait douter sur son fonctionnement. J'ai absolument tout désactivé sur le panel.

  • xavier C'est ce que j'ai fait, mais quand je lance mon docker ghost, le wordpress se redirige automatiquement sur le ghost alors que j'indique bien sur le vhost du wordpress un autre ndd.

    Merrick J'ai envie de trouver mon problème, pourquoi pas regarder cette solution après 🙂

    • Aeryax Bonjour, merci pour ta réponse !

      J'utilise le conteneur boring-nginx de wonderfall. Alors quand tu dis qu'il faut assigner des ip fixes aux containers, je peux par exemple mettre 172.18.0.7 pour le wordpress, 172.18.0.6 pour le nginx et 172.17.0.7 pour le ghost ? Dans ce cas je vais devoir faire un bridge entre le conteneur nginx et le ghost ? 🙂

      Voici mon vhost pour ghost (semblable à celui de wordpress):

      server {
        listen 8000;
        server_name ndd.be wwww.ndd.be;
        return 301 https://www.$host$request_uri;
      }
      
      server {
        listen 4430 ssl http2;
        server_name ndd.be wwww.ndd.be;
      
        ssl_certificate /certs/ndd.be/fullchain.pem;
        ssl_certificate_key /certs/ndd.be/privkey.pem;
      
        include /conf.d/ssl_params;
        include /conf.d/headers_params;
      
        #add_header Strict-Transport-Security "max-age=31536000;includeSubDomains;preload";
        client_max_body_size 50M;
       
        location / {
          proxy_pass http://ghost:2368;
          include /conf.d/proxy_params;
        }
      }
      
      • Bonjour,

        J'ai une question au niveau de Docker. je possède plusieurs conteneurs : wordpress, ghost, boring-nginx, le serveur mail de Hardware, etc. Actuellement tout fonctionne "niquel", enfin, je tilte pas trop au niveau de nginx et des écoutes.

        J'ai mis en place un conteneur wordpress sur un nom de domaine A : j'arrive à joindre le site, c'est ok. Ensuite, je mets en place un 2e conteneur ghost sur un nom de domaine B : ça fonctionne. Mais quand ces deux conteneurs sont lancés, le ndd A écoute le conteneur ghost alors que je souhaite qu'il écoute dans la logique wordpress.
        A noter: j'utilise cloudflare pour mes certificats.

        Port wordpress 80
        Port ghost 2368

        Dois-je séparer mes conteneurs? Et comment ?
        Avez-vous une idée ?

        Merci 🙂

        • Problème résolu. J'ai recommencé à zéro et gardé le port 80 pour wordress. Voici ma configuration:

            CONTENEUR:
              depends_on:
                - xxxxx
              image: wordpress:latest
              container_name: xxxx
              restart: always
              volumes:
                - /mnt/docker/xxxx:/var/www/html
              environment:
                WORDPRESS_TABLE_PREFIX: wp_
                WORDPRESS_DB_HOST: xxxxx
                WORDPRESS_DB_USER: xxxxx
                WORDPRESS_DB_PASSWORD: XXXX
                WORDPRESS_DB_NAME: xxxx
          
          CONTENEUR:
              image: mysql:5.7
              container_name: xxxxx
              restart: always
              environment:
                - MYSQL_ROOT_PASSWORD=XXX
                - MYSQL_DATABASE=xxxx
                - MYSQL_USER=xxxx
                - MYSQL_PASSWORD=XXXX
              volumes:
                - /mnt/docker/mysql/xxxxx:/var/lib/mysql 
          
          

          Le vhost

          server {
            listen 8000;
            server_name XXXX.com;
            return 301 https://$host$request_uri;
          }
          
          server {
            listen 4430 ssl http2;
            server_name XXXX.com;
          
            ssl_certificate /certs/XXX.com/fullchain.pem;
            ssl_certificate_key /certs/XXXX.com/privkey.pem;
          
            include /conf.d/ssl_params;
            include /conf.d/headers_params;
          
            add_header Strict-Transport-Security "max-age=31536000;includeSubDomains;preload";
            client_max_body_size 50M;
          
            #auth_basic "Who's this?";
            #auth_basic_user_file /passwds/<NAME>.htpasswd;
          
            location / {
              proxy_pass http://CONTENEUR:80;
              include /conf.d/proxy_params;
            }
          }
          

          Donc le mieux est laisser wordpress sur le port 80.

          • xavier Non cela ne fonctionne pas...
            Et quand j'utilise par exemple IP:8888 (où se trouvent postfixadmin/nextcloud) cela ne fonctionne pas non plus. Quand j'utilise mail.XXX.com ou postfixadmin.XXXX.com j'arrive bien sur mon nextcloud ou postfixadmin.

            Une idée ?

          • Hum oui mon portainer a le port 9000. Je viens de modifier le yml comme ceci:

              CONTENEUR:
                depends_on:
                  - xxxx
                image: wordpress-fpm-7.1
                container_name: xxxx
                restart: always
                ports:
                  - "8080:80"
                volumes:
                  - /mnt/docker/xxxxxx:/var/www/html
                environment:
                  WORDPRESS_TABLE_PREFIX: wp_
                  WORDPRESS_DB_HOST: xxxx
                  WORDPRESS_DB_USER: xxxxx
                  WORDPRESS_DB_PASSWORD: XXXXXX
                  WORDPRESS_DB_NAME: xxxx

            Et le vhost:

            server {
              listen 8000;
              server_name XXXXX.com www.XXXXX.com;
              return 301 https://$host$request_uri;
            }
            
            server {
              listen 4430 ssl http2;
              server_name XXXXX.com www.XXXX.com;
            
              ssl_certificate /certs/XXXXX.com/fullchain.pem;
              ssl_certificate_key /certs/XXXX.com/privkey.pem;
              
            include /conf.d/ssl_params.conf; include /conf.d/headers_params.conf; #add_header Strict-Transport-Security "max-age=<HSTS_MAX_AGE>;<HSTS_SUBDOMAINS><HSTS_PRELOAD>"; #client_max_body_size <MAX_BODY_SIZE>M; #auth_basic "Who's this?"; #auth_basic_user_file /passwds/<NAME>.htpasswd; location / { proxy_pass http://CONTENEUR:8080; include /conf.d/proxy_params.conf; } }

            Mais je n'arrive pas à accéder au wordpress. Ma version du docker-compose

            version: '2.0'

            Cela pose un problème - car je vois qu'il faut un 3.1 sur le hub - ou non?

            • Salut @xavier ! Merci pour ta réponse.
              En effet cet matin j'ai essayé de modifier le chemin en /conf.d/ et j'avais cette erreur:

              nginx: [emerg] "ssl_protocols" directive is not allowed here in /conf.d/ssl_params.conf:1
              

              Je viens de re-modifier mon vhost et (étrangement) j'ai plus l'erreur mais ça ne marche toujours pas. Je dois surement louper quelque chose au niveau de la déclaration du php ? Sur la doc wordpress, il cite ce bloc:

                      location ~ \.php$ {
                              #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
                              include fastcgi.conf;
                              fastcgi_intercept_errors on;
                              fastcgi_pass php;
                              fastcgi_buffers 16 16k;
                              fastcgi_buffer_size 32k;
                      }
              • Edit:

                Dans le wp-config.php j'ai ajouté:

                define('WP_HOME','https://www.XXXXX.com');
                define('WP_SITEURL','https://www.XXXXX.com');
                  define('FORCE_SSL_ADMIN', true);
                if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
                       $_SERVER['HTTPS']='on';

                J'ai par ailleurs essayé de modifier la location en suivant la doc de wordpress: https://codex.wordpress.org/Nginx

                 location / {
                    proxy_pass http://CONTENEUR:9000$is_args$args;
                    include /etc/nginx/conf/proxy_params;
                  }

                Mais cela ne fonctionne toujours pas. L'image boring-nginx est complexe. @Wonderfall aurais-tu une réponse concernant ce sujet (je dois sans doute mal utiliser ton image... excuse moi :p)?

                • Mon docker wordpress est sur le port 9000 (premier screen) mais je n'arrive pas a accéder au wordpress avec l'adresse suivante IP:9000.

                  PS: en réponse à @Moimeme (je vois plus ton message)

                • Hello,

                  J'utilise actuellement le docker boring-nginx de Wonderfall pour faire fonctionner le serveur mail créé par Hardware (tout marche niquel! 🙂). J'essaie depuis quelques jours de faire fonctionner un docker wordpress+fpm7.1 avec le docker boring-nginx mais cela reste sans succès : j'ai continuellement une erreur 502 quand je vais sur mon site.

                  Voici mon configuration:

                  Concernant mon vhost, j'ai essayé de remplacer /etc/nginx/conf/.. par /conf.d/ssl.. mais cela me retourne :

                  nginx: [emerg] "ssl_protocols" directive is not allowed here in /conf.d/ssl_params.conf:1

                  Qu'est ce que j'ai loupé ?
                  Avez-vous une idée ?

                  Edit:
                  Voici mon headers_params.conf

                  add_header X-Frame-Options SAMEORIGIN;
                  add_header X-Content-Type-Options nosniff;
                  add_header X-XSS-Protection "1; mode=block";

                  proxy_params.conf

                  proxy_set_header        Host                 $host;
                  proxy_set_header        X-Real-IP            $remote_addr;
                  proxy_set_header        X-Forwarded-For      $proxy_add_x_forwarded_for;
                  proxy_set_header        X-Remote-Port        $remote_port;
                  proxy_set_header        X-Forwarded-Proto    $scheme;
                  proxy_redirect          off;

                  ssl_params.conf

                  ssl_protocols TLSv1.2 TLSv1.3;
                  ssl_ecdh_curve X25519:P-521:P-384;
                  ssl_ciphers [EECDH+CHACHA20|EECDH+AESGCM];
                  ssl_prefer_server_ciphers on;
                  
                  ssl_session_cache shared:SSL:20m;
                  ssl_session_timeout 15m;
                  ssl_session_tickets off;