Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/05/2019, à 12:00

tuxrouge

configurer nginx ? (resolu)

Bonjour

Toujours dans l'idée de rendre flectra accessible directement depuis le port 80
j'ai suivi la documentation disponible ici en l'adaptant à mon serveur

voici le contenu de mon /etc/nginx/sites-available/flectra

##flectra Backend##

upstream flectraerp {
    server 127.0.0.1:7073;
    #server ip2:7073;
    #server ip3:7073;
}
upstream flectraerp-im {
    server 127.0.0.1:7072 weight=1 fail_timeout=0;
    #server ip2:7072 weight=1 fail_timeout=0;
    #server ip3:7072 weight=1 fail_timeout=0;
}

##https site##
server {
    listen      443 default_server;
    server_name mon-site.fr;
    root        /usr/share/nginx/html;
    index       index.html index.htm;

    # log files
    access_log  /var/log/nginx/flectra.access.log;
    error_log   /var/log/nginx/flectra.error.log;

    # ssl files
    ssl on;
    ssl_ciphers                 ALL:!ADH:!MD5:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM;
    ssl_protocols               TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers   on;
    ssl_certificate             /etc/nginx/ssl/flectra.crt;
    ssl_certificate_key         /etc/nginx/ssl/flectra.key;

    # proxy buffers
    proxy_buffers 16 64k;
    proxy_buffer_size 128k;

    # timeouts
    proxy_read_timeout 720s;
    proxy_connect_timeout 720s;
    proxy_send_timeout 720s;
    
    ## flectra proxypass with https ##
    location / {
        proxy_pass  http://flectraerp;
        # force timeouts if the backend dies
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
        proxy_redirect off;

        # set headers
        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-Forwarded-Proto https;
    }
    
    location /longpolling/ {
        proxy_pass  http://flectraerp-im;
        
        # force timeouts if the backend dies
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
        proxy_redirect off;
        
        # set headers
        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-Forwarded-Proto https;
    }    


    # cache some static data in memory for 60mins
    location ~* /web/static/ {
        proxy_cache_valid 200 60m;
        proxy_buffering on;
        expires 864000;
        proxy_pass http://flectraerp;
    }
    # gzip    
    gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
    gzip on;
    
}

##http redirects to https ##
server {
    listen      80;
    server_name mon-site.fr;

    # Strict Transport Security
    add_header Strict-Transport-Security max-age=2592000;
    rewrite ^/.*$ https://$host$request_uri? permanent;
}

mais alors que flectra reste accessible sur le port 7073, sur mon-site.com j'ai:

Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

j'ai du oublier quelque chose mais quoi ?

Dernière modification par tuxrouge (Le 21/05/2019, à 13:08)

Hors ligne

#2 Le 18/05/2019, à 13:16

Nuliel

Re : configurer nginx ? (resolu)

Je vois
##http redirects to https ##
https utilise le port 443, au final tu ne pourras pas tomber sur le port 80 en forçant https non? Par ailleurs, je ne vois pas ce qui redirige le port 7073 vers le port 80 ou 443 (mais je n'y connais pas grand chose, donc je ne pourrai pas t'aider beaucoup plus)

Edit: si je dis des bêtises, n'hésitez pas à me corriger!

Dernière modification par Nuliel (Le 18/05/2019, à 16:53)

Hors ligne

#3 Le 18/05/2019, à 13:20

bruno

Re : configurer nginx ? (resolu)

As-tu bien pensé à activer ton hôte virtuel :

sudo ln -s /etc/nginx/sites-available/flectra /etc/nginx/sites-enabled/flectra

et relancer nginx.

Hors ligne

#4 Le 19/05/2019, à 18:03

tuxrouge

Re : configurer nginx ? (resolu)

bruno oui j'ai bien activé l'ôte virtuel

Naziel, suivant la doc j'ai fais un

sudo certbot --nginx certonly 

qui est censé tout rediriger avec le bon certificat ssl en prime

c'est dans la gestion du certificat que je me serai planté ?

Dernière modification par tuxrouge (Le 19/05/2019, à 18:25)

Hors ligne

#5 Le 19/05/2019, à 19:22

bruno

Re : configurer nginx ? (resolu)

La configuration donnée en #1 ne semble pas correspondre à celle générée par certbot (emplacement et nom du certificat et de la clé privée)
As-tu d'autre hôtes virtuels sous /etc/nginx/sites-enabled/ ?

Hors ligne

#6 Le 19/05/2019, à 22:52

tuxrouge

Re : configurer nginx ? (resolu)

bruno a écrit :

La configuration donnée en #1 ne semble pas correspondre à celle générée par certbot (emplacement et nom du certificat et de la clé privée)

que veux-tu dire ?

Dans /etc/nginx/sites-enabled/ j'ai seulement le @default en plus du @flectra

Hors ligne

#7 Le 20/05/2019, à 08:40

bruno

Re : configurer nginx ? (resolu)

C'est très certainement l'hôte defaut qui répond quand tu tentes d'accèder à « mon-site.fr ». As-tu bien un vrai nom de domaine qui pointe vers ton IP publique ?
Par ailleurs certbot enregistre les certificats dans /etc/letsencrypt et ajoute certaines directives aux fichiers de configuration de nginx. Le fichier de configuration que tu présente en #1 ne contient aucune de ces directives. Il a été modifié après l'utilisation de certbot ou alors ta commande certbot a échoué.

Hors ligne

#8 Le 20/05/2019, à 18:43

tuxrouge

Re : configurer nginx ? (resolu)

alors, le fichier produit je l'ai créé de toute pièce en suivant la documentation citée (copier/coller sans vraiment comprendre) et en modifiant avec mon nom de domaine
certbot a été lancé ensuite et a indiqué un succès de la commande

du coup j'ai fais un test et je vois qu'il y a un problème

# nginx -t
nginx: [warn] conflicting server name "mon-site.fr" on 0.0.0.0:443, ignored
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

j'ai essayé de renvoyer @default vers /etc/nginx/sites-available/flectra mais ça me donne une erreur au lancement de nginx

Hors ligne

#9 Le 20/05/2019, à 19:51

bruno

Re : configurer nginx ? (resolu)

Si tu fais des copier/coller sans comprendre ce que tu fais tu n'y arriveras pas.

Commence déjà par supprimer ton hôte virtuel par défaut (un seul fichier sous /etc/nginx/sites-enabled) Ensuite essaie d'abord de fournir une configuration simple en HTTP :

server {
	listen 80 default_server;
	listen [::]:80 default_server;
	server_name example.com
	root /var/www/html;
	location / {
	    proxy_pass http://localhost:7073;
            # force timeouts if the backend dies
            proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
            proxy_redirect off;

            # set headers
            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-Forwarded-Proto https;
    }
}

Et vérifie si cela fonctionne. Tu pourras ensuite utiliser certbot si tu veux un accès en https.

Dernière modification par bruno (Le 20/05/2019, à 19:52)

Hors ligne

#10 Le 21/05/2019, à 13:07

tuxrouge

Re : configurer nginx ? (resolu)

avec ta proposition, ça fonctionne. Merci

pour l'accès https je crois que je vais devoir plancher un peu le sujet du coup

Hors ligne